ART的函数运行机制

类的加载

dalvik 的类加载的主要过程如下:

  1. app_process 作为 zygote server 通过 local socket 处理进程创建请求,zygote server 是在 ZygoteInit.main 函数里调用 ZygoteInit.runSelectLoop 监听。

  2. 接收到 zygote client 的 fork 请求之后,调用 ZygoteConnection.runOnce ,调用 Zygote.forkAndSpecialize 创建新进程

  3. 进程创建之后,由 ZygoteConnection.handleParentProc 来初始化进程,最终会调用 ActivityThread.main 函数

  4. ActivityThread.main -> ActivityThread.attach ->  ActivityThread.bindApplication -> Activity.handleBindApplication,handleBindApplication 会初始化 BaseDexClassLoader 。

  5. 类的加载经过了 ClassLoader.loadClass->BaseDexClassLoader.findClass->DexPathList.findClass->DexFile.loadClassBinaryName->DexFile.defineClassNative->DexFile_defineClassNative (runtime/native/dalvik_system_DexFile.cc) 。

这个初始化过程, art 和 dalvik 都是一样的。 art 的 DexFile_defineClassNative 由 ClassLinker 的 DefineClass 来加载类。

阅读全文 »

转载: https://deepzz.com/post/gdb-debug.html

软件开发,或多或少会走上调试这条路。调试工具可以帮你更加深入了解整个程序的运行状态,对程序运行有更多的主动权。你可以随心所欲的改变程序运行流程,如:有变量a,你需要不断改变该a的值,让程序运行出理想的结果,那么你可以在调试工具中轻易的实现。

  • 运行你的程序,设置所有的能影响程序运行的东西。
  • 保证你的程序在指定的条件下停止。
  • 当你程序停止时,让你检查发生了什么。
  • 改变你的程序。那样你可以试着修正某个bug引起的问题,然后继续查找另一 个bug

今天给大家带来的gdb调试工具。GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。GDB可以调试C、C++、D、Go、python、pascal、assemble(ANSI 汇编标准)等等语言。

阅读全文 »

https://github.com/shenzhengfang/kkndme_tianya/blob/master/README.md

kkndme_tianya(持续更新中…)

天涯神贴「2010年的房地产调控,我们收获了什么?写在房价暴涨前」脱水版,内容时间顺序和原贴保持一致,原贴中的优质非楼主写的内容,添加了引用格式便于区分。

「2010年的房地产调控,我们收获了什么?写在房价暴涨前」里面写的内容,相信每一个站在 2019 年的我们看过后都会觉得怎么没有早点看到这个帖子。

欢迎关注微信公众号:沈正方,我会在我的个人微信公众号「沈正方」 里写一些我对这篇帖子内容的思考,欢迎一起讨论。

房地产调控表面上看起来的理由有三条:

阅读全文 »

快速开始

介绍:

安装需要Git,触发git clone,默认将每一个指定特定格式插件的仓库复制到~/.vim/bundle/. 搜索需要Curl支持。

Windows用户请直接访问Windows setup. 如果有任何问题, 请参考 FAQ. 查看 Tips 获取相关高级配置。

使用 non-POSIX shells, 比如比较流行对 Fish shell, 需要额外对步骤。 请查看 FAQ.

阅读全文 »

github 搜索技巧

参考自 B站 up 主 CodeSheep 的视频【如何高效地在网上找开源项目做!在职程序员实际演示一波视频教程操作】,然后写着写着一好奇就去看文档了

现在这篇博客相当于官方文档的翻译版😂

当然,你也可以去看【官方文档】体验原汁原味的教程

阅读全文 »

Xposed源码剖析——概述

XPosed 是与 Cydia 其名的工具,它能够让 Android 设备在没有修改源码的情况下修改系统中的 API 运行结果。我们通常称之为:God Mode(上帝模式)。

之前享大家分享了 Xposed 的基础,Xposed 的作用和最简单的用法。那么,它的原理和它的内部构造是如何构成的?下面,我们从 Github 上看看,rovo89 大神是如何制作的。

rovo89的github地址:https://github.com/rovo89

阅读全文 »

Anroid 逆向工具

静态分析

JEB - The Interactive Android Decompiler.

GDA - GGJoy Dex Analysizer(GDA),国内第一款也是唯一一款全交互式反编译器,同时也是世界上最早实现的 dalvik 字节码反编译器。

IDA - The IDA Disassembler and Debugger is an interactive, programmable, extensible, multi-processor disassembler hosted on Windows, Linux, or Mac OS X. IDA has become the de-facto standard for the analysis of hostile code, vulnerability research and commercial-off-the-shelf validation.

阅读全文 »
0%