android总结
秃头披風侠
这个作者很懒,什么都没留下…
展开
-
Binder在Java层的实现
通过Binder在native的实现可以知道Binder通信的本质就是通过Binder共享内存进行跨进程通信,所以Java层还是利用这个进行通信的,只是Client和Server内部的一些执行逻辑有变化,我们直接来看Java层是如何与Binder通信的就可以了。Java系统服务的创建过程Java系统服务在Android启动过程中由ServiceThread启动,以power系统服务为例,PowerManagerService继承自Stub类,Stub是定义在IPowerManager接口..原创 2020-07-18 01:52:21 · 663 阅读 · 0 评论 -
Binder在Native的实现
android中的跨进程通信(ipc)用的是C/S体系系统,Binder为这个体系系统提供IPC通信能力。在android的C/S体系中增加了一个组件servicemanager,提供注册和检索Service的功能。Service在启动过程中将自身信息注册到servicemanager,servicemanager中维护了一个Service信息的列表,Client在使用服务时,可以通过名字像servermanager获取对应Service信息。servicemanager由init启动的进程,本身也是个原创 2020-07-16 01:26:33 · 351 阅读 · 0 评论 -
greenDao简单使用
在项目的build.gradle中添加compile 'de.greenrobot:greendao:2.1.0'下载DaoGenerator项目,打开DaoGenerator项目public static void main(String args[]) throws Exception { Schema schema = new Schema(1, "com原创 2016-04-05 16:00:46 · 2836 阅读 · 0 评论 -
基于ViewDragHelper的抽屉控件
现在android的抽屉控件很多,android官方也有,但是不符合我想要的样式,于是自己写了一个。我想要的结果是滑动的时候抽屉并不动,而是首页动,android官方的抽屉是首页不动,是将抽屉滑到首页上,qq的样式为首页滑动,漏出抽屉,但是抽屉也是跟随着首页的滑动而滑出来的。ViewDragHelper可以不接触ontouch而控制子view的移动,用来做抽屉也很简单很方便很强原创 2016-03-22 22:54:06 · 735 阅读 · 0 评论 -
Dagger2简单使用
在注入的时候需要Component,inject方法需要将被注入的对象传进来,一般都是activity,然后component就会把数据注入给传进来的对象。 例如Component是C,activity是A,A中有个对象需要被注入,对象为D,需要注入的对象要用@Inject注解,C注入对象需要Module,叫它M。M的类声明外要加@Module。 首先要初始化C,在C的原创 2016-03-15 15:13:42 · 413 阅读 · 2 评论 -
android 6.0权限问题
最新的android 6.0系统加入了权限控制,用户可以控制权限的开关,这样即使在manifest中申请权限了,但是用户依然可以关闭,所以在调用需要权限才能调用的api的时候,比如获取mac地址,一定要判断是否拥有权限,否则会崩溃.api23还提供了两个新的接口,checkSelfPermission()和requestPermissions().checkSelfPermission()原创 2015-12-24 16:57:52 · 891 阅读 · 0 评论 -
surfaceview缓存问题
之前在网上看到surfaceview有双缓存机制,但是实际用起来并不是绝对的双缓存,还在网上看到有说三缓存的,但是实际操作中发现这并不是绝对的.用surfaceview绘图的时候,先调用holder.lockCanvas()获得一个canvas,然后可以在这个canvas上继续画东西,然后调用holder.unlockCanvasAndPost(canvas)将这个canvas绘制到s原创 2015-12-22 11:11:20 · 2494 阅读 · 0 评论