- 博客(6)
- 收藏
- 关注
原创 Android 的核心服务
在Android上,上层APP的SDK-basedService与底层的核心服务有很大的区别:1.应用层的应用服务,统称为SDK-basedService(App服务)2.系统层核心服务,统称为CoreService(SystemService)App服务是在开机完成后,用户加载并开启某个应用时,才会启动该App的服务,他会定义成一个Service的子类,当AMS(activityMa
2017-05-23 12:16:08 856
原创 进程相关
vm本身是一个class,在进程创建的时候创建的vm对象,用于c/c++对接java,Android 基于linux的特性.两个模块之间不能直接存取.因此,为了确保App的沙盒效果,(每个进程都是一个盒子).每个进程都需要一个主线程来处理ui,所以每个主线程都有一个MQ,来处理Ui和其他的线程送来的Message.主线程闲下来后,就不停的执行looper,不断访问MQ.在App进程创建之前
2017-05-12 15:59:48 227
原创 Messenger和IMessenger接口
因为是同步queue(队列)处理消息,多以service类的开发者不必担心多线程的安全问题,这就叫单线程环境(单线程开发程序),不管多少线程来,主线程都是一个一个吃.Messenger是单线程,aidl是多线程.通过Messenger来包装IBinder接口,让其跨进程的将Message对象传递到另一个进程中,由于Message实现了Pracelable接口,所以Messenger类可
2017-04-13 16:04:05 1212
原创 关于aidl的理解
相比于直接用Ibinder接口,使用编码和解码来进行跨进程通讯,过于粗暴,Android 使用了Proxy和Stub来来代理,这样无需开发者来编码解码,或者自己编写代理类.,使得跨进程通讯更亲善.但是,要实现的功能等具体开发的时候才能才能知道,这个时候怎么办的,此时需要分两部分来看.1是c++层,使用模板方法,将需要实现的接口当做一个特殊的类2是java层, 则是使用程序生成器(pro
2017-04-12 15:59:29 289
转载 java.lang.IllegalArgumentException: Illegal character in scheme at index 0 的几种解决方式
第一种 ASCII装换问题.链接http://blog.csdn.net/ismr_m/article/details/46383313第二种发送url时的转化问题,使用URL u = new URL(原url)转化第三种,访问地址时需要有http:// 作为开头
2017-01-24 13:01:25 40651 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人