Android内存分配
Java Head(Dalvik Head),这部分的内存是由Dalvik虚拟机管理,可以通过java的new方法来分配内存;而内存的回收是符合GC Root回收规则。内存的大小受到系统限制,如果使用内存超过App最大可用内存时会抛出OOM错误。
Native Head,这部分内存,不受Dalvik虚拟机管理的,内存的分配和回收是通过C++的方式来创建和释放的,没有自动...
分类:
其他好文 时间:
2016-07-14 15:28:27
阅读次数:
909
Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。下面我把Android的特性及其架构体系结构总结一下。
一、Android的平台特性
Android平台有如下特性:
1. 应用程序框架支持组件的重用与替换。
这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。
2. Dalvik...
分类:
移动开发 时间:
2016-07-13 16:17:48
阅读次数:
295
http://pan.baidu.com/s/1hs2kHbm
AndFix热补丁原理就是在 native 动态替换方法 java 层的代码,通过 native 层hook java 层的代码。
优点
1. 因为是动态的,所以不需要重启应用就可以生效
2. 支持ART与Dalvik
3. 与multidex方案相比,性能会有所提升(Multi Dex需要修改所有cl...
分类:
移动开发 时间:
2016-07-13 16:16:12
阅读次数:
493
android中为什么实用NDK,网上一搜一大堆,在这原因不在赘述。在AndroidSDK首次发布时,Google就宣称其虚拟机Dalvik是支持JNI编程方式的;也就是第三方的应用是可以调用自己公司的或者是其他C、C++动态库。搭建平台:1.我这用的是MacBook,系统是OSX10.11.5;2.AndroidStudio2...
分类:
移动开发 时间:
2016-07-11 19:37:33
阅读次数:
325
https://developer.android.com/training/articles/memory.html#Android对于任何软件来说RAM都是一个非常重要的资源,但是由于物理内存总是有限的,所以内存对于手机操作系统来说也更加重要。尽管Android的Dalvik虚拟机会执行GC,但是仍然不允许忽略应该在什么时候,什么地方分配和释放内存为了垃圾回收器能够回收app的内存,需要避免内存...
分类:
移动开发 时间:
2016-07-11 17:12:41
阅读次数:
301
ddms: dalvik debug manitor services devices: 列出当前电脑所连接的所有android设备,及android设备运行的进程,结束一个进程,设置程序为debug模式,截屏。 logcat: 会打印系统运行过程中所有日志信息。 file explorer: 列出 ...
分类:
其他好文 时间:
2016-07-05 22:34:29
阅读次数:
223
分层的架构 1.application :应用层 ; java2.application framework :应用框架层 , java+JNI3.libraries 和 dalvik : 函数库和虚拟机层, c/c++ 4.linux kernel : linux 内核驱动层, c ...
分类:
移动开发 时间:
2016-07-05 22:34:15
阅读次数:
232
jvm : java虚拟机 sun dvm: dalvik虚拟机 google 区别: 1.基于的架构不同,jvm 基于栈架构,栈是位于内存上的一个空间,执行指令操作,需要向cpu寻址; dvm 基于寄存器架构,寄存器是cpu的一个组成部分,执行指令操作无需寻址直接执行。 2.执行文件的格式不同,j ...
分类:
其他好文 时间:
2016-07-05 22:29:19
阅读次数:
161
一、前言最近在弄脱壳的时候发现有些加固平台的加固方式是修改了dex文件结构,然后在加载dex到内存的时候,在进行dex格式修复,从而达到了apk保护的效果,那么在dex加载到内存的时候,如何进行dex格式的修复呢?其实原理就是基于运行时修改内存中的Dalvik数据,本文就来用一个简单的例子来介绍一下如何在内存中去修改Dalvik指令代码来改变代码本生的运行逻辑。在讲解本文之前,一定要先看这篇文章:...
分类:
移动开发 时间:
2016-07-02 14:33:56
阅读次数:
345
0x03 DexHunter代码分析 DexHunter 实现中,只需要修改一处文件:dalvik\vm\native\dalvik_system_DexFile.cpp 下面是BeyondCompare比对: 首先看一下DexHunter的设计原理: APP 启动时,通过freature stri ...
分类:
移动开发 时间:
2016-06-27 19:53:46
阅读次数:
240