Android 应用层
devyok
这个作者很懒,什么都没留下…
展开
-
减小终端与基站建立空口连接导致传输时延
公司自研Android终端(基于展讯平台),需要在按下物理按键时向服务器发送UDP包做业务,但是,QA经过大量的测试在网络状态相对较好的情况下,依然会存在业务延迟的情况后面经过和展讯MODEM工程师沟通,这种情况终端MODEM处于休眠状态下,终端首次向基站请求上行传输资源时,终端需要先向基站申请上行调度请求,基站才能分配资源让终端进行上行数据传输。那么如何能让基站能够尽快的分配资源给终端。原创 2016-05-23 14:26:09 · 2189 阅读 · 0 评论 -
Android混淆最佳实践
综述毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。首先,这里说的的混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依靠 ProGuard,混淆流程将主项目以及依赖库中未被使用的类、类成员、方法、属性移除,这有助于规避64K方法数的瓶颈;同时,将类、类成员、方法重命名为无意义的简短名称,增加了逆向工程的难度。而依靠 Gradle 的 An转载 2018-01-18 10:10:55 · 621 阅读 · 0 评论 -
当焦点在SearchView中时,输入法不能处理KEYCODE_BACK按键的原因
公司自主研发的终端产品形态是带有物理按键的T9数字键盘的,终端需要可以通过键盘来输入字符(中文、英文、数字等),当然同时也是可以删除的。软件中的某个模块,使用了SearchView这个控件,当输入字符之后,用户可以通过back按键删除字符,但是在实现的过程中发现输入法不能获取KEYCODE_BACK按键。翻了下SearchView的源码,发现SearchView$SearchAutoCom原创 2016-05-23 13:25:41 · 2416 阅读 · 0 评论 -
Dvm的进程和Linux的进程
Dvm的进程是dalivk虚拟机进程,每个android程序都运行在自己的进程里面,每个android程序系统都会给他分配一个单独的liunx uid(user id),每个dvm都是linux里面的一个进程.所以说这两个进程是一个进程.原创 2016-05-30 21:59:26 · 2145 阅读 · 0 评论 -
Android 恢复出厂设置(系统时间不修改)
Android恢复出厂设置时,只会将/data和/cache分区进行清除,时间和其他分区不会清除,时间由rtc硬件模块来进行维护的,时间更新后会将时间信息写入此硬件模块,在系统启动时,RTC硬件驱动会读取此值进行设置。原创 2016-05-30 21:54:43 · 3259 阅读 · 0 评论 -
Dialog中IME获取不到keyevent的原因
结论:使用默认的弹出dialog 的方法,IME是获取不到keyevent事件的,只有自己定义的dialog,也就是在dialog show之前调用setView,那么ime就可以获取到keyevent了。为什么在dilaog show出来的时候,IME获取不到keyevent事件,是由于当在没有setView时,AlertController中的成员变量mView为null,当在show的时原创 2016-05-26 21:06:57 · 987 阅读 · 0 评论 -
Android PendingIntent
Pending : 待定PendingIntent 和 Intent 的区别: 使用Intent启动的activity或者service,只要这个activityfinish或者service stop 那么这个intent也就销毁了,但是PendingIntent不是这样,他是在AMS里面有由一个PendingIntentRecord的管理,即便broadcast执行完之后,这个PendIn原创 2016-05-26 20:58:26 · 973 阅读 · 0 评论 -
FLAG_EXCLUDE_STOPPED_PACKAGES与FLAG_INCLUDE_STOPPED_PACKAGES
Android在4.0之后,如果已经安装的APP,在从未启动过时,通过广播是无法唤醒APP的,但是Service是没有,Service是依然可以唤醒的。 经过看源码, 在AMS发送广播的时候,添加了一个FLAG =FLAG_EXCLUDE_STOPPED_PACKAGES,所以忽略了从未启动过的APP,所以通过广播就不能唤醒,如果需要唤醒需要添加FLAG=FLAG_INCLUDE_STOPPE原创 2016-05-25 22:22:35 · 3859 阅读 · 2 评论 -
AsyncTask出现RejectExcetionExcetion原因
在项目中使用AsyncTask过程中,出现过RejectExcetionExcetion这个异常,经过查看源码,发现在构造ThreadPoolExecutor时,ThreadPoolExecutor内部默认的RejectedExecutionHandler是AbortPolicy来实现的,AbortPolicy见名知义就是中断执行的策略既是抛出RuntimeException。在ThreadPoo原创 2016-05-25 22:06:05 · 1840 阅读 · 0 评论 -
kotlin 视频教程
kotlin视频教程转载 2018-01-18 10:22:28 · 3437 阅读 · 0 评论