Android源码分析
微笑-向前行
这个作者很懒,什么都没留下…
展开
-
Android4.3源码分析--Android世界
1.3.1 Activity 的界面表现Activitys是这五个组件中最常用的组件,程序中的Activity通常的表现形式是一个单独的界面(screen),每个Activity都是一个单独的类,它扩展实现了Activity基础类,整个类显示未一个由Views组成的用户界面,并响应事件,大多数程序都有多个Activity。 1.3.2 Intent和In原创 2017-12-24 23:40:37 · 286 阅读 · 0 评论 -
Android4.3源码分析--JNI本地接口层
第一章 分析JNI(Java 本地接口)层 2.1加载JNI库Android4.3的源码,与JNI相关的文件如下所示:./frameworks/base/media/java/android/media/MediaScanner.java./frameworks/base/media/jni/android_media_MediaScanner.cpp./f原创 2017-12-24 23:44:21 · 432 阅读 · 0 评论 -
JNIEnv的使用在C和C++中的区别
Java调用C和C++函数时的JNI使用区别:注意:jni.h头文件中对于***.c & ***.cpp采用不同的定义在C的定义中,env是一个两级指针,而在C++的定义中,env是个一级指针C形式需要对env指针进行双重deferencing,而且须将env作为第一个参数传给jni函数jclass (JNICALL *GetObjectClass) (JNIEnv *env, jobject o原创 2018-01-06 18:19:31 · 1128 阅读 · 0 评论 -
JNI 数据类型转换
1、基本数据类型下面一张表是描述了 Java 基本数据类型和JNI中基本数据类型的相对应关系已经占用空间大小。随便观察就能发现,其实就基本数据类型而已,JNI基本数据类型只是比Java基本数据类型前多了个’j’而已当然,JNI中还有个Java中没有的jsize,定义如下:typedef jint jsize;其实jsize整型是用来描述基本指标和大小,没有什么神秘的转载 2018-01-06 18:21:17 · 4036 阅读 · 0 评论 -
android JNI中JNIEnv类型和jobject类型的解释
JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv * env, jobject obj){coutendl;}对于这个方法参数中的JNIEnv* env参数的解释:JNIEnv类型实际上代表了Java环境,通过这个JNIEnv* 指针,就可以对Java端的代码进行操作。例如,创建Java类中转载 2018-01-06 22:20:47 · 8695 阅读 · 0 评论 -
ANDROID JNI 智能指针
Android系统的运行时库层代码是用C++来编写的,用C++来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过系统为我们提供了智能指针,避免出现上述问题,本文将系统地分析Android系统智能指针(轻量级指针、强指针和弱指针)的实现原理。一、内存泄露与智能指针 在使用C++来编写代码的过程中,指针使用不当造成内存泄转载 2018-01-06 22:56:23 · 745 阅读 · 0 评论 -
Android系统启动流程(二)解析Zygote进程启动过程
前言上一篇文章我们分析了init进程的启动过程,启动过程中主要做了三件事,其中一件就是创建了Zygote进程,那么Zygote进程是什么,它做了哪些事呢?这篇文章会给你这些问题的答案。1.Zygote简介在Android系统中,DVM(Dalvik虚拟机)、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也将它称为孵化器。它通过fock(复制进程...转载 2018-04-04 10:09:04 · 167 阅读 · 0 评论