05@Android App
洗过风
这个作者很懒,什么都没留下…
展开
-
【Service】Service理解
关于Service 1、 Service不是分离开的进程,除非其他特殊情况,它不会运行在自己的进程,而是作为启动运行它的进程的一部分。 2、 Service不是线程,这意味着它将在主线程里劳作。 启动service有两种方法: 1、 Context.startSer转载 2014-08-04 10:09:07 · 641 阅读 · 0 评论 -
【View】Android View绘制机制
View绘制机制1. View树的绘图流程整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘(draw),这里就不做延展了,我们只介绍在自定义View中转载 2015-01-12 17:26:59 · 668 阅读 · 0 评论 -
【JNI】开发流程6步骤
JNI开发流程主要分为以下6步:1、编写声明了native方法的Java类2、将Java源代码编译成class字节码文件3、用javah -jni命令生成.h头文件(javah是jdk自带的一个命令,-jni参数表示将class中用native声明的函数生成jni规则的函数)4、用本地代码实现.h头文件中的函数5、将本地代码编译成动态库(windows:*.dll,linux/转载 2015-05-14 11:02:44 · 425 阅读 · 0 评论 -
【博客】Android博客
常用工具网站 1. Android代码查找 https://www.codota.com/ 2. 开源项目解析 http://www.codekk.com/open-source-project-analysis CSDN 1.任玉刚 http://blog.csdn.net/singwhatiwanna 2.老罗 http://bl原创 2015-05-19 14:05:19 · 484 阅读 · 0 评论 -
【Service】Android中保持Service存活的方法
关于如何让Service keep alive,我在上篇博客给出的解决方案是:方案一,让服务器端发一个推送,检查Service是否还存活;方案二,将Service独立出来,运行在另一个进程中。这两个方案有些地方需要说明和改进,然后还会有其他方案补充进来。方案一:利用推送来确保Service存活。方案一的做法有点“偷懒”。因为相当于把这个难题转移给推送服务提供者来处理,或者说原创 2015-06-25 09:17:10 · 2845 阅读 · 1 评论 -
【QrCode】Zxing竖屏,并解决变形问题
Step 1: Add following lines to rotate data before buildLuminanceSource(..) in decode(byte[] data, int width, int height)DecodeHandler.java:byte[] rotatedData = new byte[data.length];for (int y = 0; y原创 2015-07-20 16:34:33 · 1860 阅读 · 0 评论 -
【Intent】对隐式Intent的运行时检查保护:如相机调用失败
类似打开相机,发送图片等隐式Intent,是并不一定能够在所有的Android设备上都正常运行。例如打开相机的隐式Intent,如果系统相机应用被关闭或者不存在相机应用,又或者是相机应用的某些权限被关闭等等情况都可能导致这个隐式的Intent无法正常工作。一旦发生隐式Intent找不到合适的调用组件的情况,系统就会抛出ActivityNotFoundException的异常,如果我们的应用没有对这原创 2015-10-08 12:44:25 · 1112 阅读 · 0 评论 -
【动态加载】Android动态加载:简单加载模式
初步了解Android动态加载Java程序中,JVM虚拟机是通过类加载器ClassLoader加载.jar文件里面的类的。Android也类似,不过Android用的是Dalvik/ART虚拟机,不是JVM,也不能直接加载.jar文件,而是加载dex文件。先要通过Android SDK提供的DX工具把.jar文件优化成.dex文件,然后Android的虚拟机才能加载。注意,有的An转载 2015-12-14 14:28:20 · 696 阅读 · 0 评论 -
【动态加载】Android动态加载进阶:代理Activity模式
技术背景简单模式中,使用ClassLoader加载外部的Dex或Apk文件,可以加载一些本地APP不存在的类,从而执行一些新的代码逻辑。但是使用这种方法却不能直接启动插件里的Activity。启动没有注册的Activity的两个主要问题Activity等组件是需要在Manifest中注册后才能以标准Intent的方式启动的(如果有兴趣强烈推荐你了解下Activity生命周期转载 2015-12-14 14:58:06 · 580 阅读 · 0 评论