前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >JNI签名 Android系统

JNI签名 Android系统

作者头像
zhangjiqun
发布2024-12-16 18:28:28
发布2024-12-16 18:28:28
8900
代码可运行
举报
文章被收录于专栏:计算机工具
运行总次数:0
代码可运行

JNI签名

为什么会有方法签名这种东西呢?这是因为Java这边支持函数重载,即虽然参数不一样,但是方法名一样,那么在JNI层它们的方法名都会是一样的,那JNI也会犯迷糊了,得找哪个呢? 不过也正是因为其参数类型是不一样的,所以就出现了方法签名,利用方法签名和方法名来唯一确定一个JNI函数的调用。 既然方法签名是基于参数类型的不同而形成的,首先要知道Java各数据类型对应的签名是什么,也就是所谓的类型签名

代码语言:javascript
代码运行次数:0
复制
对应于Java端的数据类型,我们也可以看一下下面的表: 
Java 类型 类型签名
boolean Z
byte    B
char    C
short   S
int I
long    L
float   F
double  D
类   L全限定名;,比如String, 其签名为Ljava/lang/util/String;
数组  [类型签名, 比如 [B

因为byte已经是B,所以B被占了,Boolean选择用Z。Long为什么不用L,因为L表示对象,被占用,选择用J

代码语言:javascript
代码运行次数:0
复制
Java层方法                                  JNI函数签名

String test ( )                             Ljava/lang/String;
int f (int i, Object object)                (ILjava/lang/Object;)I
void set (byte[ ] bytes)                    ([B)V  //V: void 返回值


int  [ ][ ] 其描述符为[[I
float[ ][ ] 其描述符为[[F



其中:
 ([B)V  // V: void ,方法返回值,在括号外面 ,[ 代表数组
 (int i, Object object) :(ILjava/lang/Object;)I :返回值I,

其中: ([B)V // V: void ,方法返回值,在括号外面 ,[ 代表数组 (int i, Object object) :(ILjava/lang/Object;)I :返回值I,

Android系统

当电源键按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行,

加载引导程序到RAM,然后执行。 引导程序是Android操作系统开始运行前的一个小程序,一般使用bootloader作为引导程序。引导程序分为两个阶段执行: 1)检测外部的RAM以及加载对第二阶段有用的程序。 2)引导程序设置网络,内存等等。 引导程序可以根据配置参数或输入数据进行配置内核,并且进行加载内核。 内核启动时会进行设置缓存,被保护存储器,计划列表,加载驱动。当内核完成系统设置后

它首先在系统文件中寻找init文件,然后启动init进程。 Init进程是Linux起来之后启动的第一个用户进程,android系统就是在这个进程的基础上启动起来的,进程号为1

init进程主要就是挂载文件目录,如sys/,dev/,proc/

另外就是运行init.rc脚本。由于在init.rc中有对启动Zygote的参数配置,所以最终可以将Zygote启动起来。 Zygote是一个孵化器进程,所有的应用程序进程以及系统服务进程SystemServer都是由Zygote进程孕育fork出来的。在Zygote中进行添加虚拟机参数,并将其启动起来

然后注册JNI函数。在Zygote中进行预加载以及初始化核心类库。最后将SystemServer启动起来。 在SystemServer中进行对各种系统服务对象进行创建,并将创建好的对象,添加进SeviceManager中可以让其他模块通过ServiceManager就可以获得所需要的服务对象。 前面所有事情都完成后,就可以进行启动Launcher了,最终出现系统主界面。 主要内容

  • uboot启动流程
  • uboot调试方法
  • kernel启动流程
  • kernel编译调试方法
  • 概述init到启动Launcher过程
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Android系统
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档