
Android研究
i不歪
这个作者很懒,什么都没留下…
展开
-
VisualGDB调试NDK代码无法查看局部变量
VisualGDB调试NDK代码时无法查看局部变量,请检查你NDK原创 2014-04-04 17:48:50 · 1803 阅读 · 0 评论 -
【分析】dalvik虚拟机启动过程(二)
源码版本:Android-4.4.4_r2提示:大部分分析直接注释在代码内。接着上一篇【分析】dalvik虚拟机启动过程(一)JNI_CreateJavaVM函数调用dvmCreateJNIEnv创建JNIEnv后,接着又调用了dvmStartup函数初始化VM:/* * VM 初始化。 * VM initialization. Pass in any原创 2015-03-29 00:24:43 · 1787 阅读 · 0 评论 -
【分析】dalvik虚拟机启动过程(三)
源码版本:Android-4.4.4_r2在AndroidRuntime::start中调用AndroidRuntime::startVm函数启动了虚拟机,然后又调用了AndroidRuntime::startReg函数注册Android函数:/* * 向 VM 注册Android本地函数。 * Register android native functions with原创 2015-03-29 00:28:40 · 1447 阅读 · 0 评论 -
【分析】dalvik虚拟机启动过程(一)
源码版本:Android-4.4.4_r2提示:大部分分析直接注释在代码内。主要函数的调用层次:|AndroidRuntime::start |AndroidRuntime::startVm |JNI_CreateJavaVM |dvmCreateJNIEnv |dvmStartup原创 2015-03-29 00:14:53 · 3637 阅读 · 0 评论 -
JNIEnvExt/JNIEnv创建过程分析
参考源码版本:Android-4.4.4_r2---------------------------------dvmCreateJNIEnv函数创建一个JNIEnvExt结构,函数返回时,将JNIEnvExt*强制转换为JNIEnv*:/* * 创建一个新的JNIEnvExt结构,并将它添加到VM列表中。 * 返回时,将JNIEnvExt*强制转换为JNIEnv*。 * C原创 2015-03-27 21:20:19 · 1944 阅读 · 0 评论 -
【分析】config-portable文件
路径:dalvik/vm/mterp/config-portable-----------------------------------------------------------gen-mterp.py文件可以根据config-portable文件,生成便携(portable)的dalvik解释器的源码,这种风格的解释器可以方便的移植,而根据这个配置文件生成的源码全都是”.cpp”原创 2015-03-27 00:26:21 · 1308 阅读 · 0 评论 -
【分析】生成dalvik解释器原文件的脚本:gen-mterp.py
源码参考:进入路径:dalvik/vm/mterp/gen-mterp.py----------------------------------------------------------------------------------------------------概述gen-mterp.py根据特定体系结构配置文件,生成dalvik解释器的C和汇编源码。po原创 2015-03-27 00:22:37 · 2812 阅读 · 0 评论 -
【分析】多dex加载机制
Android源码版本:5.0.2_r1下面是多dex加载的时序图: Android项目有两种方式支持多dex:1. 项目中的Application类继承MultiDexApplication。2. 在自己的Application类的attachBaseContext方法中调用MultiDex.install(this);。我从Mul原创 2015-03-27 00:06:45 · 11297 阅读 · 1 评论 -
构造多dex的apk
步骤1. 在IntelliJ IDEA中创建一个Android项目。2. 修改AndroidManifest.xml文件,在``标签中添加"android:name="android.support.multidex.MultiDexApplication"3. 修改app模块下的`build.gradle`文件,在`defaultConfig`中添加一行:`multiDexEnabl原创 2015-03-25 10:24:56 · 9148 阅读 · 1 评论 -
android编译错误解决办法
一、htmlDir not a directory: out/target/common/docs/gen/bin/bash: line 26: 21282 Killed LD_LIBRARY_PATH=out/host/linux-x86/lib javadoc \@out/target/product/sdkDemo/obj/JAVA_LIBRARIE原创 2014-04-03 20:13:47 · 11956 阅读 · 0 评论 -
VisualGDB编译android代码失败原因及解决方案
VisualGDB编译android代码失败后,如果显示“某个工具从以下位置返回了错误代码: "正在执行生成文件项目操作"”一、原创 2014-04-05 10:15:37 · 2025 阅读 · 0 评论 -
【分析】dalvik虚拟机解释执行字节码
参考源码版本:Android-4.4.4_r2提示:大部分分析直接注释在代码内。dvmInterpret函数中调用了dvmInterpretPortable函数对方法的字节码进行解释执行,dvmInterpret在dalvik/vm/interp/Interp.cpp文件中。dvmInterpretPortable函数在dalvik/vm/mterp/out/Int原创 2015-04-04 07:17:04 · 6889 阅读 · 0 评论