Ken

Talk is cheap. Show me the code


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • Sitemap

  • 搜索

多渠道打包那些事

发表于 2015-12-03 | 分类于 AndroidStudio |

最近在AndroidStudio上进行多渠道打包,虽然渠道包不多,但是手动打包,一向很懒的程序员往往是不会干的,好的工具都是懒人创造出来的。
之前就看过stormzhang关于多渠道打包的那些事,但是每个公司的渠道不一样,有各种各样的渠道号,今天就被两种给搞的一直编译不过。原来是这样.
如果你的渠道号中有360,91这一类,那么你的productFlavors里面的配置就要这样,渠道前面加_

_360 <&#125;

如果你的渠道号中有这么一类,abc.bug,那么你就要这样写

"abc.bug <&#125;"

还有就是刚开始的时候打包成功,但是上传到各大AppMarket的时候,提示此App未签名。有一个地方一定要写上,stormzhang上面也有,但是这里重点提醒一下

signingConfig signingConfigs.release

就是这句一定要加上,不然虽然包能打出来,但是是无效的。

版权声明:



除非注明,本博文章均为原创,转载请以链接形式标明本文地址。

阅读全文 »

AtomPlugins

发表于 2015-12-01 | 分类于 工具 |



想必这两幅图大家一定很熟悉吧,最近在朋友圈,微博上面他可是没少出现,一个Atom编辑器的插件,很6,今天装了一下,自我感觉不是我的菜。。。平时玩玩还可以。。很简单,跟我一起来

如果你的电脑上面没有Atom这款编辑器的,到Atom官网自行下载,选择适合自己的版本下载即可。
这里我只介绍Mac上面的安装,其他出问题概不负责,哈哈。Atom安装完成之后,我们就要安装插件了,安装之前首先你电脑上面要安装git,mac就不说了,你懂的,windows上面没有的小伙伴可以看这里
git安装教程。下面开始安装插件,找到.atom的文件夹,这是一个隐藏文件,你可以用命令行显示所有隐藏文件,亦或直接终端定位到这个文件夹,然后执行

1
2
3
4
git clone https://github.com/JoelBesada/activate-power-mode.git
cd activate-power-mode
apm insatll
apm ls #检测是否成功

这样重启我们的Atom,然后control+aption+o打开这个插件的开关,如果点玩之后发现右上角出现错误,而且没有任何效果

1
2
3
4
5
6
7
At Cannot find module 'lodash.throttle'
Error: Cannot find module 'lodash.throttle'
at Module._resolveFilename (module.js:336:15)
at Function.Module._resolveFilename (F:\atom\Atom Beta\resources\app.asar\src\module-cache.js:383:52)
at Function.Module._load (module.js:286:25)
at Module.require (module.js:365:17)
......

是这样的说明你的lodash.throttle依赖没有安装,我刚开始的时候就是出现这个问题。直接进到这个package目录,执行下列命令
npm install lodash.throttle

即可。
话说这个Atom很占内存啊,之前一直用的Sublimtext,之后可能还会继续用,但是这里还是要感谢这位牛逼的插件作者,写个代码也得写得这么轰动。。。要是As上面支持就好了。。。(后续应该会有吧)哈哈

阅读全文 »

简单的View冲突事件处理

发表于 2015-11-30 | 分类于 Android |

前几天我们App上面有这么一个需求,就是在我们发照片的地方会贴上标签,但是这个标签可以点击删除,可以长按翻转,可以移动地方,那就会涉及到事件的冲突处理,这地方会有onClick,onLongClick,onTouch,总的来说,所有的事件都由如下三个部分作为基础:

  • 按下(ACTION_DOWN)
  • 移动(ACTION_MOVE)
  • 抬起(ACTION_UP)

下面我们先从事件的实现开始来看看,最后我们一起来实现需求。
所有的操作事件首先会执行按下操作,之后的所有的操作都是以按下操作作为前提,当按下完成后,接下来可能是移动然后抬起,或者按下之后直接抬起,这一系列都是可以进行控制的。

我们知道,这些所有的触摸操作都是发生在触摸屏上,而在屏幕上与我们交互的是各种各样的试图组件View,所有的视图都继承于View,另外通过各种布局组件(ViewGroup)来对View进行布局,ViewGroup也继承于View。那么View和ViewGroup中主要有哪些方法来对这些事件进行响应哪?查看View和ViewGroup源码可知:
View.java

1
2
public boolean dispatchTouchEvent(MotionEventevent)
public boolean onTouchEvent(MotionEvent event)

ViewGroup.java

1
2
3
public boolean dispatchTouchEvent(MotionEvent event)
public boolean onTouchEvent(MotionEvent event)
public boolean onInterceptTouchEvent(MotionEvent event)

通过比对上面这几个方法可以看出,这里面有两个方法是公有的,dispatchTouchEvent和onTouchEvent,那么ViewGroup的第三个方法是干啥的那,不要着急,慢慢往下看。还有一个共同的地方就是他们的返回值竟然都是boolean类型,为什么会都是boolean类型,想想我们写这个博文的初衷,“事件传递”,传递嘛,就是一个接一个,那总要有结束的时候啊,这个boolean就是控制这个的,到了某一个点后是否继续往下传递,这个返回值很重要。所有的事件都是从开始传递到最后事件的消费,那么这个返回值就决定了是否继续传递,还是被拦截,或者消费了。
介绍完了返回值,接下来我们来看看这些方法的参数,都接收一个MotionEvent参数,这个参数继承于InputEvent,作用就是标记各种动作事件,刚开始说到的ACTION_DOWN,ACTION_MOVE,ACTION_UP,都是MotionEvent中定义的常量,我们就是通过这个常量来知道用户的具体操作事件。现在,我们对返回值和参数都有一定的概念了,下面来看一下这三个方法分别在什么时候处理事件。

  • dispatchTouchEvent()dispatch派遣,分发的意思,很明显这个方法就是用于事件的分发,Android中所有事件都必须经过这个方法来处理,决定是自身消费当前事件,还是继续分发给子View处理。返回true表示不继续分发,事件没有得到消费。反之,继续分发,如果是ViewGroup则分发给onInterceptTouchEvent进行判断是否拦截该事件。

  • onTouchEvent()主要用于事件的处理,返回true,则消费此次事件,返回false,则不处理,交给子View处理。

  • onInterceptTouchEvent()这是ViewGroup中独有的方法,作用就是事件的拦截,返回true,拦截当前事件,不继续分发,交给自身的onTouchEvent处理。返回false,不拦截,继续传递。为什么View没有这个方法,因为ViewGroup中可能还会有子View,而在Android中View是不可能再有View的(iOS是可以的)。

阅读全文 »

程序员的黄金搭档

发表于 2015-11-26 | 分类于 随记 |

一个好的工作环境不只是公司给我们提供,也需要我们自己配置,工欲善其事,必先利其器。为自己搭建一个令自己开开森森的工作台,岂不美哉美哉。

题图是我最近拍的

版权声明:



除非注明,本博文章均为原创,转载请以链接形式标明本文地址。

阅读全文 »

关于App中再按一次退出实现方式

发表于 2015-11-21 | 分类于 Android |

想必大家都见过,大多数的App都有这么一种情况,就是当我们在App上进行如何操作,在最后快要退出的时候,往往要连按两次Back键,第一次的时候会有提示“再按一次退出”等提示语,在提示还没消失的时候再按一次,应用真正退出。下面我们就来看看如何简单实现这一种,第一种是我们的常规做法,第二种保准会让你爱不释手。

1
2
3
4
5
6
7
8
9
10
private long exitTime = 0;
@Override
public void onBackPressed() &#123;
if ((System.currentTimeMillis() - exitTime) > 2000) &#123;
Toast.makeText(this,R.string.press_again_exit_app,Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
&#125; else &#123;
finish();
&#125;
&#125;

我们在这里重写onBackPresswd(),判断时间戳,想必大家都是这么实现的,这里介绍一个简单的Method。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 public Toast toast;
@Override
protected void onCreate(Bundle savedInstanceState) &#123;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toast = Toast.makeText(this, "再按一次退出", Toast.LENGTH_LONG);
&#125;

@Override
public void onBackPressed() &#123;
if(null == toast.getView.getParent())&#123;
toast.show();
&#125;else&#123;
System.exit(0);
&#125;
}

当我们的toast显示不消失,那么我们获取到的toast.getView.getParent()始终不为空,在我们在toast没消失的时候再点击一次Back,那么整个应用退出。是不是很简单啊。

版权声明:



除非注明,本博文章均为原创,转载请以链接形式标明本文地址。

阅读全文 »

学习网站整理

发表于 2015-11-19 | 分类于 学习网站整理 |

今天晚上把之前收集的一些有用的csdn,blogs,github分享给大家,这里面不止有android的东西,还有iOS的东西,前端,后台…这就是我们android开发人员的精神食粮,每天吮吸那么一点点。。。。

Android

  • 别人整理的 Android 学习资源网站
  • 任玉刚
  • 张兴业
  • 陈启超
  • Google学习demo
  • Android学习之旅
  • 码农明明桑
  • Android
  • 郭霖
  • 鸿洋
  • MrSimple何鸿辉
  • AigeStudio关爱民
  • Aige个人小站
  • Android_Tutor
  • Android流媒体技术
  • 林炳文
  • 老罗,罗升阳
  • 邓凡平
  • Trinea
  • Android问题集锦
  • AndroidStudio问题集锦
  • 亓斌
  • AndroidUI优化
  • Will
  • Java编程思想
  • stormzhang
  • sunzn’Blog
  • Android实战小项目
  • Android小片段
  • Android学习系列
  • 夏安明
  • 徐宜生
  • Android自定义View
  • 王鹏Android
  • 张涛
  • 胡凯
  • Java高级
  • Stay
  • 鸟窝
  • Android 开源项目源码解析
  • Android源码设计模式分析项目
  • Android 开源项目分类汇总
  • 巫小刚
  • 赵凯强
  • 张明云
  • Android魔法学院
  • 掉线的Android
  • android-cn
  • 小米开源社区
  • Android开发博文
  • 马天宇Android
  • Android笔记
  • Android技术总结
  • 工匠若水
  • 工匠若水2
  • nomasp柯于旺
  • 每天一道算法
  • Android系列博文
  • SimpleBloger
  • 猫头鹰技术博客
  • AndroidStudio教程
  • gitBook
  • 晓峰
  • Android程序人生
  • Android填坑手册
  • Android话题
  • Android开发技术周报
  • Codekk源码
  • AndroidStudio专栏
  • 天真无邪Android技术
  • Android开源项目
  • git教程
  • markzhai-魔都大帅
  • 技术小黑屋
  • 小钢Android
  • 稀有猿诉
  • 唐韧
  • 廖祜秋
  • 一叶飘舟
  • 谷哥的小弟
  • QQ空间终端开发-Android相机开发那些坑&version=11020201&pass_ticket=nGtC65w6xV2ek%2FFuwmH4lhHBfWD3CJETV1gyVmBVaIc%3D)
  • Android安全中文站
  • RX Java中文版
  • KotlinGitBook中文版
  • 查看Android源码
  • JakeWhartonGithub
  • 给Android开发者的RxJava详解
  • 大头鬼Blog
  • Google开源项目
  • 如何高效学习动画-知乎
  • Android官方培训课程中文版
  • Kotlin for android developers》中文版
  • Android开发经验谈
  • Android 开发规范与应用
  • 阳春面blog
  • 好的Android开发习惯
  • Android-gms
  • AndroidStudio系列文章
  • GDG
  • Android优质文章-开发技术前线
  • RxJava资料
  • 吴小龙
  • 第三方库的使用心得
  • AndroidSDK源码分析
  • 腾讯Bugly专栏
  • 胡家威
  • 2016GoogleIO视频
  • 玩 Android
  • 技术笔记
  • JacksBlog
  • 高产 Piasy
  • 不翻墙的小伙伴可以访问的AndroidDeveloper
  • 小创的 Android 单元测试
  • Gityuan
  • 孤独狂饮
  • Diycode 每日精选
  • 各种 UI 特效
  • Android 学习资料整理
  • Android 学习笔记大全
  • 韩海龙 Android
  • 郑晓勇一些优化方面实践
  • 田维术一些插件化方面实践
  • 区长csdn

iOS

  • Why’s BlogSwift
  • iOS开发集锦
  • 王巍喵神
  • YYKitiOS
  • 吕文瀚iOS
  • 唐巧
  • 破船之家iOS
  • iOS博客
  • objc中国
  • ios_swift开发资源整理
  • Sunny iOS
  • MJiOS
  • Cracking the coding interview
  • iOS开源库
  • iOS技术博文
  • Swift干货
  • 孙启超swift
  • iOS博文
  • 从今天开始学习swift
  • Swift 语言指南
  • swift小应用
  • swift社区
  • iOS技术团队
  • iOS开发60分钟入门
  • 移动开发点点滴滴
  • GitHub排名前50的Objective-C开发者
  • 让不懂编程的人爱上iOS
  • iOS开发网站
  • 南峰子iOS
  • 有态度的iOScoder
  • iOS开源项目
  • swift微信
  • kevinzhow-送给女朋友的iOS视频
  • iOS学习资料整理
  • iOS,Mac开源框架
  • 中文 iOS/Mac 开发博客列表
  • 关注被忽略的OC,Swift和Cocoa特性
  • iOS架构方面
  • iOS动画小王子
  • 30 Days of Swift
  • iOS 逆向相关
  • swift-evolution
  • 笨猫学编程专栏

其他

  • 冯大辉个人Blog
  • 开发技术前线
  • 每天一个Linux命令
  • Baidu免费API
  • App测试
  • 菜鸟各种教程
  • 美团点评技术团队
  • Android开发技术周报
  • 泡在网上的日子
  • 阮一峰
  • 廖雪峰
  • 如何用好Google搜索引擎
  • objc中国
  • 走心的Swift翻译组
  • As主题配置
  • 刷算法
  • 微信读书团队
  • diyicode社区
  • 看雪安全论坛
  • 江青青的技术专栏,专注移动开发
  • 大前端
  • 优雅的使用你的SublimeText3
  • 构建 F8
  • React-Native学习指南
  • 30-days-of-react-native
  • 摄图网
  • VIM 教程
  • 一个开源镜像站点, xCode,SDK,Gradle 更新站点
  • Bugly 社区
  • 我们可以自己玩的一些 API
  • 一大波 gitbook 书籍

后续会继续添加,继续维护

阅读全文 »
1…567
Ken

Ken

Android,BlockChain Developer

38 日志
10 分类
34 标签
RSS
GitHub
Links
  • Go Blockchain
© 2016 — 2018 Ken
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4