Android系统
文章平均质量分 70
Android的日常开发记录
SwDengpeixun
这个作者很懒,什么都没留下…
展开
-
[Android] hidl实现完整c++示例
HIDL是Android8.0新出的一个技能,以service和client的方式实现hal接口,目的是想使Android系统和BSP解绑,使系统升级更加方便。HIDL的使用方法一般是先提供.hal文件,然后使用hidl-gen工具生成 框架源文件和Android.bp编译工具文件,之后填充生成的源文件和定制Android.bp编译文件。原创 2024-09-19 10:48:32 · 549 阅读 · 0 评论 -
[Android] Android启动流程
Zygote进程是Android系统的关键进程,负责fork出应用进程,是所有应用进程的父进程。init进程会解析init.rc配置文件,该文件描述了系统在启动时需要进行的各种操作,包括启动系统服务、挂载文件系统等。Zygote进程是Android系统中的一个重要进程,是所有应用程序的起点,任何新应用程序的进程都是由Zygote进程来孵化和启动的。在系统启动过程中,init进程首先会创建和挂载所需的文件目录,这些目录包括根目录、/proc、/sys等,以确保系统能够正常运行和提供所需的资源和环境。原创 2024-09-02 10:43:24 · 1468 阅读 · 0 评论 -
[Android] init进程的介绍
第二阶段主要是初始化属性系统、解析SELinux的匹配规则、启动属性服务、解析init.rc来启动其他进程如Zygote进程。属性带有前缀如.ro表示只读属性、.persist表示用来保存程序的设置项修改属性的请求一般由init进程完成。服务Service,以service开头,由init进程启动,一般运行在init的一个子程序,所以启动。通过触发器,即以on开头的语句来决定执行相应的service的时机,具体的时机如下。init进程是系统中用户空间的第一个进程,进程号为1,该进程启动分两个阶段。原创 2024-09-02 10:34:54 · 293 阅读 · 0 评论 -
[Android] JNI技术
JNIEnv是一个与线程相关的代表JNI环境的结构体JNIEnv实际上就是提供了一些JNI系统函数,通过这些函数可以调用Java的函数,操作object对象很多事情。通过JNIEnv操作jobject和jstring从C/C++到Java的调用(回调)1.生成Java对象,可以使用函数NewObject();2.调用Java类的方法,例如,方法的返回值是int型,则需要调用函数callIntMethod()。3.存取Java类的域变量(得到、设置非静态域变量;得到、设置静态域变量)原创 2024-09-02 10:28:20 · 436 阅读 · 0 评论 -
[Android] Android四大组件
started service(启动服务)是由其他组件调用startService()方法启动的,当服务是started。(1)started(启动):当应用程序组件(如activity)调用startSerive()方法启动服务时,(2)bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于。使用bindService()方法启用服务,调用者与服务绑定在一起,调用者一旦退出,服务也就。服务(service),后台运行服务,不提供界面呈现;服务处于started状态。原创 2024-09-02 10:26:31 · 574 阅读 · 0 评论 -
Android中Bionic模块
在可执行文件的装载过程中,所有装载进来的动态库对应的soinfo结构都会放到一个链表中,当新装载一个动态库时,会首先检查它是否已经存在于链表中,如果不存在才会继续装载。而linker伪造了一个libdl.so的soinfo结构,并放在了链表第一个元素的位置,因此程序中链接的libdl.so并不会真正的装载。Hook API的原理是利用ptrace函数把一小段代码注入目标程序中,这小段代码的任务是:装载自己开发的动态库到目标进程中,然后查找目标进程中特定函数在全局偏移表中的位置,替换成自己动态库的函数地址。原创 2024-09-02 09:52:46 · 1460 阅读 · 0 评论 -
Android:USB设备信息获取
【代码】Android:USB设备信息获取。原创 2024-04-20 18:20:45 · 530 阅读 · 0 评论