![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
四大组件
文章平均质量分 81
飞鸟青崖
这个作者很懒,什么都没留下…
展开
-
ContentProvider、ContentResolver
关于Uri的信息,在http://blog.csdn.net/u010410408/article/details/23713795中也有。原创 2014-05-18 16:07:03 · 676 阅读 · 0 评论 -
Context
基础 当应用的进程启动时,会得到一个整个应用的context(通过getApplicationContext()得到)。Activity,Service都是Context的子类,所以每一个Activity,Service都是一个Context。 在一般情况下,两者是可以通用的,如toast中需要的context传入两者中的任何一个都行。但在有些时候只能用后者,不原创 2016-01-27 11:56:35 · 970 阅读 · 0 评论 -
dex文件入门(二)
proto_ids_size/offset proto指方法的原型,此处的原型指的是只有返回类型与参数类型(链接)。偏移offset后,存储的结构体如下:struct proto_id_item{uint shorty_idx;uint return_type_idx;uint parameters_off;} 从上面可以看出,每一个proto_id_原创 2016-05-20 21:48:23 · 656 阅读 · 0 评论 -
dex文件格式入门
参考 参考一 参考二 参考三结构图图一:点击查看来源header 从上图中列表可以看出,每一荐占有的字节数。除magic(就是用于标识该文件是dex文件与当前的版本号的)以及signature(签名验证)外,其余都是占四个字节。uint指的是unsigned int即无符号int类型。原创 2016-05-19 00:10:53 · 3133 阅读 · 0 评论 -
Messenger
基础 Messenger的底层使用的是AIDL技术,因此,它的大部分操作都与AIDL相同。只不过在使用AIDL时,我们需要自己写AIDL文件,然后由开发工具根据AIDL文件生成相应的代码(这些代码就是使用Binder进行跨进程通信的代码)。 而在使用Messenger时,系统已经写好了AIDL文件,并也生成了相应的代码。Messenger有两个构造方法,如下:原创 2016-04-17 22:52:13 · 864 阅读 · 0 评论 -
BroadcastReceiver与自定义权限
自定义权限 在清单文件中通过进行声明,然后通过引用自己声明的权限(可不引用)。示例: <permission android:name="com.baigle.imitatehandler.TEST" android:protectionLevel="signature" />protectionLevel原创 2014-12-22 19:12:09 · 6195 阅读 · 0 评论 -
IntentService,Service及AIDL
概述 它是Service的子类,与普通Service相比,它具有如下优点:内部维护了一个线程,因此可以直接在onHandleIntent()方法中访问网络,而不需要再开线程;会将所有的启动该Service的Intent对象存储进来,然后依次执行,并且在执行完毕后,会调用stopSelf(),不需要自己处理。重写了onBind(),并返回null。 它的缺点也在于原创 2014-12-22 16:43:31 · 628 阅读 · 0 评论 -
多进程
基础 在默认的情况下,一个应用的所有组件都运行在同一个进程中的。android中使用多进程的方式有两种:第一种,在jni中开启另一个进程。 第二种,四大组件均支持 android:process 属性,此属性可以指定该组件应在哪个进程运行。如果没有为某个组件指定process属性,那么它将运行在默认的进程中,进程名为包名。可以在清单文件中设置此属性,使每个组件均原创 2016-04-14 14:10:30 · 386 阅读 · 0 评论 -
隐式Intent,IntentFilter与Uri
参见:http://blog.csdn.net/dlutbrucezhang/article/details/8917774原创 2014-04-14 23:45:14 · 1166 阅读 · 0 评论 -
应用启动
基础 所有的startActivity()最终都会执行到下Activity#startActivityForResult public void startActivityForResult(Intent intent, int requestCode, @Nullable Bundle options) { if (mParent == null) {原创 2016-05-09 13:47:38 · 863 阅读 · 0 评论