logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Binder死磕到底(二):进程间通信库libbinder.so

service manager框架图中发现引入了I##INTERFACE、Bp##INTERFACE、BpBinder等对象,其实这些都是Android系统在应用程序框架层中将各种Binder驱动程序操作封装成一个Binder库,这样我们就可以很方便的调用Binder库提供的接口来实现进程间通信。Binder库并不是想象中那么简单,恰恰相反很庞大。...

#android
Android 系统应用之Settings

Setting作为安卓一个比较重要的系统级应用,为用户提供一些系统项的设置。原生android系统的源码路径:/packages/apps/Settings。但MTK厂商的源码包中对该应用进行了重构其源码路径:/vendor/mediatek/proprietary/packages/apps/MtkSettings。一、Setting1、Setting函数入口android应用程序的入口比较简单

#android#android studio#webview
Android ANR & SWT

ANR(Application Not Responding,即应用程序无响应)。在Android中,当应用程序在规定时间内没有处理完毕相应的事件,系统就会报出ANR。

#android
Android 常用命令和工具解析

选出应用启动阶段App Startup应用主线程启动阶段,跟对比机对比到底差异再哪一个阶段,如下案例比较大的差异在bindApplication阶段,我们可以对比哈bindApplication阶段中间执行的流畅是否一致,例如中间是否做了verify Class操作,中间是否存在binder等待过长,中间是否存在dlopen耗时过长,另外还有一些应用可能启动的界面不一致,也会导致总共耗时不一致。可

文章图片
#android
Binder死磕到底(一):Linux进程通信和service manager进程

一、Linux基础概念1、Linux内存管理2、Linux进程通信二、Binder驱动1、Binder驱动初始化2、Binder驱动打开设备文件3、Binder驱动内存映射4、Binder驱动为什么只有一次拷贝?5、几个重要数据结构6、Binder驱动命令处理Android系统其实是一个建立在Linux内核上面的桌面系统,它直接沿用了Linux内核,即Android的进程调度,内存管理等机制都从L

文章图片
#linux#android
Android安全策略SELinux

SELinux原本是美国国安局联合一些公司设计的一个针对Linux的安全加强系统。SELinux出现之前,Linux系统上的安全模型叫做DAC(自主访问控制),其原理是进程所拥有的权限与执行它的用户的权限相同(例如:以root用户启动Browser,那么Browser就有root用户的权限,在Linux系统上能干任何事情)。SELinux的出现结束了这种宽松的访问。SELinux在DAC的基础之上

#android
Android源码解析

一、Android系统启动过程启动电源以及系统启动:当电源按下时引导芯片代码从预定义的地方(固化在ROM)开始执行。加载引导程序BootLoader到RAM中并执行引导程序BootLoader:它是在Android操作系统开始运行前的一个小程序,其主要作用是把系统OS拉起来并运行Linux内核启动:当内核被引导程序拉起来启动时,设置缓存、被保护存储器、计划列表、加载驱动。在内核完...

到底了