dalvik浅析二:jni、so】的更多相关文章

android大多使用java来开发,java中有个概念叫jni.当然说到jni,必然是少不了native code.在android中就是so库.我们来分析下jni在android dalvik的使用,以下篇幅是我对Dalvik虚拟机JNI方法的注册过程分析文章的学习和注解.在这之前先说几个概念: JavaVM:虚拟机实例,也可以通过全局变量gDvm所描述的一个DvmGlobals结构体的成员变量vmList来描述的: JNIEnv:用来描述当前线程的Java环境,利用此结构可以调用在Zygo…
Record锁/Gap锁/Next-key锁/插入意向锁 文章总共分为五个部分: InnoDB的锁机制浅析(一)-基本概念/兼容矩阵 InnoDB的锁机制浅析(二)-探索InnoDB中的锁(Record锁/Gap锁/Next-key锁/插入意向锁) InnoDB的锁机制浅析(三)-幻读 InnoDB的锁机制浅析(四)-不同SQL的加锁状况 InnoDB的锁机制浅析(五)-死锁场景(Insert死锁) 大而全版(五合一):InnoDB的锁机制浅析(All in One) 前言 InnoDB常见的锁…
EM算法浅析,我准备写一个系列的文章: EM算法浅析(一)-问题引出 EM算法浅析(二)-算法初探 一.EM算法简介 在EM算法之一--问题引出中我们介绍了硬币的问题,给出了模型的目标函数,提到了这种含隐变量的极大似然估计要用EM算法解决,继而罗列了EM算法的简单过程,当然最后看到EM算法时内心是懵圈的,我们也简要的分析了一下,希望你在看了前一篇文章后,能大概知道E步和M步的目的和作用.为了加深一下理解,我们回过头来,重新看下EM算法的简单介绍: 输入:观测变量数据Y,隐变量数据Z,联合分布$P…
android的安装包是个apk文件,其中包含dex.资源及签名文件.其中dex是包含程序运行的类代码,而android是运行在dalvik(5.0之前)上的.本篇我们就来看下dalvik是如何把dex载入并运行的. 先看整体脉络(重点照顾解析步骤,优化自行查找资料): android在安装apk时会验证dex文件是否符合规范,并优化dex生成odex:接着会将odex文件解析成易于被dalvik加载和执行的dexFile结构体.下面我们就跟随源码看下dex的心路历程吧. apk的安装在java…
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 Java编程里会使用到两种类型:基本类型(如int,float等)和引用类型(如class,instance,arrays),JNI编程里对这两种的类型的处理方法也是不一样的. JNI定义了与Java的基本类型和引用类型相对应的C/C++类型: Java类型 本地类型(JNI中使用) boolean jboolean int jint float jf…
转载请注明出处... 接着上一篇的ReentrantLock和condition源码浅析(一),这篇围绕着condition 一.condition的介绍 在这里为了作对比,引入Object类的两个方法,notify和wait方法,这两个方法作用,估计都很清楚,就是一个具有唤醒线程,另一个具有让线程等待的功能,适用场景,像类似生产者,消费者,那样. 这两个方法的注意点,在于必须放在同步块中执行,具体原因可自行百度或谷歌.执行wait方法后,线程会阻塞,并释放同步代码块的锁(sleep方法会持有锁…
以太网驱动流程浅析(二)-ifconfig的详细代码流程 Author:张昺华 Email:920052390@qq.com Time:2019年3月23日星期六 此文也在我的个人公众号以及<Linux内核之旅>上有发表:以太网驱动流程浅析(二)-ifconfig的详细代码流程 很喜欢一群人在研究技术,一起做有意思的东西,一起分享技术带给我们的快乐,也希望中国有更多的人热爱技术,喜欢一起研究.分享技术,然后可以一起用我们的技术来做一些好玩的东西,可以为这个社会创造一些东西来改善人们的生活. 如…
上一篇我们说了runloop 的几种模式,那么我们在模式中又要做些什么呢??? 模式中有三个模块: 事件源(输入源) Source Source: 按照官方文档分类 Port-Based Custom Input Cocoa Perform Selector 按照函数调用栈,Source的分类 Source0:非基于Port的 Source1:基于Port的,通过内核和其他线程通信,接受,分发系统事件. (这里没什么太大用,剩下的Source概念我就不介绍了有兴趣可以去别处查查) 观察者 Obs…
第二篇,慢慢来 根据指数调整有效小数位数 // 上一篇由字符串创建BigDecimal代码中,有部分代码没有给出,这次补上 // 这个是当解析字符数组时存在有效指数时调整有小小数位数方法 private int adjustScale(int scl, long exp) {// 参数:scl-->>原生有效小数位数,exp:有效指数 long adjustedScale = scl - exp;// 这个其实自己写个例子就能明白,例如数值1.234*10^-3次方,此时实际数值位0.0012…
创建.a静态库 第一步,新建工程.     一般使用工程名就使用库的名称,比如我这里用FMDB来创建静态库,我的工程名就取名为FMDB,创建的.a静态库就是libFMDB.a.                      使用静态库模板新建工程.png 创建的工程.png 第二步,删除系统默认创建的[FMDB.h]和[FMDB.m]文件,导入需要打包的源文件. 导入源文件后.png 第三步(方式一),修改项目配置 修改配置.png 点击上图中的[3],弹出的列表中选择[New Headers Ph…