![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
tww85
这个作者很懒,什么都没留下…
展开
-
Android native调用分析(JNI)
1. 为什么需要native?2. java层(或者说dalvik)如何识别native函数?3. java层到native的调用是如何实现的?4. java和native工作在同一进程吗?5. native 受dalvik管理吗?带着这些问题,接下来逐步去分析总结,相信是会有收获的。一、为什么需要native。 1. 不可反编译。na原创 2016-09-09 11:19:18 · 3284 阅读 · 0 评论 -
android Service和Thread的区别
转自: http://www.cnblogs.com/perfy/p/3820502.html1.服务不是单一的进程。服务没有自己的进程,应用程序可以不同,服务运行在相同的进程中。2.服务不是线程。可以在线程中工作。一.在应用中,如果是长时间的在后台运行,而且不需要交互的情况下,使用服务。同样是在后台运行,不需要交互的情况下,如果只是完成某个任务转载 2016-11-15 18:30:09 · 473 阅读 · 0 评论 -
OTA服务器和android客户端添加HTTPS协议
有段时间没总结了,这期间主要学习三个问题:一是https协议,OTA HTTPS 协议可以工作了。二是消息推送,推送用的是openfire+asmack方案,目前只能给所有用户广播消息,如果针对不同项目用户,服务器端还需要单独开发插件支持,这个后面继续研究。三是服务器并发压力测试,测试工具用的是jmeter,个人觉得这个工具还是很强大的,可以同时模拟成千上万的用户同时访问服务器。原创 2016-11-30 12:15:10 · 3909 阅读 · 0 评论 -
Android OTA应用访问Thinkphp5 服务器
从学习服务器端Thinkphp5 到现在已有半个月,目前为止,尝试做的OTA后台服务器已经可以运行,手机端的OTA应用也可以通过服务器下载升级包并完成升级。这期间还是能学习到不少东西的,比如php、html、js、数据库、网络等,实践证明多动手才能发现问题,才能发现不足。多学习才能发现自己的无知,才体会到知识的浩瀚无穷和力量。服务器做好了,如何访问服务器呢?1. 可以通过H原创 2016-10-25 11:12:19 · 838 阅读 · 0 评论 -
Android 事件输入系统整体框架
一、 整体框架图1. ViewRootImpl 每个窗口都对应一个viewRoot,通过viewRoot把view 添加到WM WindowState 列表里,之后WM就可以维护每个窗口的状态。 native层上报的事件消息和刷屏会先到达ViewRoot。对于刷屏事件,ViewRoot 会对view执行layout和measure动作。对于key或者触屏事件,ViewRo原创 2016-09-21 11:30:08 · 373 阅读 · 0 评论 -
Android 事件输入系统分析计划
工作中时常遇到和事件输入相关的问题,比如:1. 按键无响应问题2. 触屏无响应问题3. 触屏跳点问题4.自己定义事件问题,比如SIM卡插拔事件5. android服务里能接受到事件吗,曾经有人问过我这样的问题。.....等等类似事件相关问题,所以如果熟悉整个输入系统工作机制,那么对解决这么问题将会事半功倍。事件输入系统涉及kernel、native、fram原创 2016-09-20 12:31:50 · 223 阅读 · 0 评论 -
Android 平台log
一、log 分类aplogmodem loganr logpanic logtombstones logdropbox logmonkey loglast_kernel log二、aplogaplog 是分析android 系统问题的基本log,不管是应用crash、 ANR 还是别的各种系统异常,aplog都是很有必要的。1). aplog 包含and原创 2016-07-01 10:23:49 · 1618 阅读 · 0 评论 -
如何修改android5.1 多帧PNG图片
在一个3.5寸手机上做恢复出厂设置时正在清除安卓机器人显示不出来,调查发现是因为默认png图片太大原因,于是想办法修改包含多帧的png图片。记录下了过程,如下:1. 在windows7 64位上安装python2. 把python 安装目录加入环境变量 path 下 , 把D:\Python27\Scripts 目录也加入环境变量3. 安装easy_install 下载64位e原创 2016-07-01 10:32:08 · 1866 阅读 · 0 评论 -
Android外部应用获取SD卡状态
像是从android4.0以后,外部应用就无法通过android标准接口获取到SD卡状态,但是可以通过如下方法获取:1. 通过env 获取SD卡路径 String externalStorage = System.getenv("SECONDARY_STORAGE");2. 通过读取mounts节点获取SD卡挂载状态private boolean isSdcardMounted原创 2016-07-01 10:35:53 · 425 阅读 · 0 评论 -
android 影响开机速度因素
1.EMMC 读写性能2.去掉不必要的服务3.第一次开机不启动fstrim,文件系统刚创建的,有必要执行fstrim??4. 编译应用odex化5. 开机时CPU是否跑在最高频率6. 启动代码里不必要的循环排序原创 2016-07-01 10:38:36 · 582 阅读 · 0 评论 -
android5.1 AsyncTask 启动慢
在一个低性能平台上遇到一个进入恢复出厂设置慢问题,有时候会卡住几十秒。跟踪发现进入恢复出厂设置是会先在AsyncTask 对persistent 分区做格式化,慢就是因为AsyncTask 启动慢。调查发现AsyncTask 启动慢的原因有二:1. 系统默认的AsyncTask 是基于一个顺序执行的线程池,所以如果线程池里的别的线程正在运行,那么当前AsyncTask 就无法得到及时执原创 2016-07-01 11:52:55 · 473 阅读 · 0 评论 -
多进程下的单实例和全局变量
曾经对单实例和全局变量有过很深的误解,而且发现有即使是工作几年的童鞋依然理解得不对,总以为单实例和全局变量是针对整个系统的,所以遇到在一个应用(相当于进程)里面修改了一个全局变量的值,但是发现在另外一个地方(另外一个进程)去访问得到的值总是不对。而且打log跟踪也发现代码确实已经走到修改的地方了,变量值改了,为什么得到的值还是不对呢,一头雾水。 比如有的人在android fram原创 2016-07-13 16:43:09 · 4619 阅读 · 1 评论 -
Android 数字签名
按照自己的理解,写下总结。1. 数字证书 正常是由数字证书管理心发给个人或者组织的证书,相当于身份证,用来唯一识别一个发送者,这点在通过网络签署合同时很重要,避免对方抵赖合同不是他发送的。但是android 上证书是自己生成的,因为不管是谁开发的应用,默认都是允许安装的。2. 数字签名 数字签名是用来确认发送者身份和发送信息完整性的。发送者将把原始数据摘要信息用私有进原创 2016-07-18 17:12:24 · 841 阅读 · 0 评论 -
尝试写的一个android象棋游戏,还未加入博弈功能
偶尔下下象棋,棋艺比较烂,常常败于电脑,敬佩那些开发象棋算法之余,也想了解了解这象棋算法的原理。所以在业余时间一边写写象棋游戏代码,一边研究研究象棋算法。目前完成了界面,事件响应,棋子走法规则匹配,也就是基本实现了本地的人人对弈,人机对弈还没有实现。先做个阶段性的记录和总结备份,以后有时间研究透了再加上博弈算法。 几个要点总结如下: 1. 设计好总原创 2016-08-09 13:17:37 · 488 阅读 · 0 评论 -
Android OTA升级的补救措施
问题场景如下: 产品已经上市,由于销量太好了,某个硬件连二供都供应不上,没办法,只能用三供的硬件,但是之前量产版本的软件(软件A)不支持三供的硬件,所以为兼容三供硬件,需要出软件B,软件A和软件B版本号一样(为了使所有用户在表面上看拿到都是了一样的产品)。但是使用的三方OTA升级软件是通过软件版本号去区分版本的,现在软件A和软件B版本号一样,那么以后如果需要出售后版本C,如何使得软原创 2016-09-01 18:03:38 · 1421 阅读 · 0 评论 -
对Android 平台下SElinux的理解及遇到过的相关问题解决方法总结
笔者在工作中多次遇到和SELinux相关的问题,初次遇到时一头雾水,走了很多弯路,也耗费了很多时间精力。后来看了不少资料和博客,也研究了相关代码,对SELinux有了些认识。所以用本文来做个总结,加深理解。本文将从下面五个方面来逐步认识和理解Android 下SELinux。什么是SELinux为什么需要SELinuxSElinux 工作原理android 上的实现曾经遇到过的问题原创 2016-09-06 17:01:18 · 15396 阅读 · 0 评论 -
基于MQTT的消息推送
这段时间学习了推送技术,对xmpp和mqtt 协议做了下比较。xmpp基于xml信息传递,所以传输信息量比较大,在保持长链接情况下功耗会比较大。可能还是比较适合用来做聊天之类的通讯应用,而对于智能和物联低功耗设备的推送来说,感觉比较笨重。而mqtt协议就是针对网络带宽低,高延时,通信不稳定的环境设计的,特别适合物联设备。低通讯量连接保持,简约轻便。提供了发布/订阅模式,只要原创 2016-12-09 11:45:17 · 9679 阅读 · 0 评论