Android 开发周报:Android Studio 2.3 发布、Android Hook 技术解析

  • 郭亮

2017 年 3 月 8 日

话题:Android语言 & 开发架构

  • 《Android 7.0 应用启动流程分析》:所谓冷启动就是启动应用时,后台没有该应用的进程,此时系统会创建一个进程分配给它 (AMS 通过 Socket 和 Zygote 通信,Zygote 通过 forkAndSpecialize() 方法向 Linux 内核申请新进程),之后会创建和初始化 Application,然后通过反射执行 ActivityThread 中的 main 方法。本文结合源码,详细分析了应用冷启动的过程。

  • 《浅谈 Android Hook 技术》:xposed 是社区开源的框架,xposed 通过替换 /system/bin/app_process 程序控制 zygote 进程,使得 app_process 在启动过程中会加载 XposedBridge.jar 这个 jar 包,从而完成对 Zygote 进程及其创建的 Dalvik 虚拟机的劫持。Frida 是一款基于 python+javascript 的 hook 框架,通杀 Android\iOS\linux\win\osx 等各平台,由于是基于脚本的交互,因此相比 xposed 和 substrace cydia 更加便捷,本文介绍两个框架在 Android 下面的使用。

  • 《Android 架构那些事之第三方库的隔离》:我们在开发的过程中会不可避免的引用一些第三方库,比如网络请求库、图片加载库等等。就拿图片加载库来说,程序中不会只有一个地方来引用到此库,可能有 N 个类会用到此库来显示图片。这种情况下,就可以通过一个中间层来引用“第三方图片加载库”。这样做的好处是不管第三方图片加载库换成 Picasso 还是 Glide,只需改变中间层,其他的一行代码都不需要改动。阅读文章,了解详细方案。

  • 《Android 应用安全风险与防范》:Android 开发除了部分功能采用 C/C++ 编码外,其余主要都是采用 Java 进行编码开发功能。Java 应用非常容易被反编译,Android 自然也不例外。只要利用 apktool 等类似的反编译工具,就可以通过安装包获取源代码。Google 为了保护开发者的知识产权,为 Android 提供了 ProGuard 混淆方案,以增加反编译后源码阅读,但对于 Android 开发老司机和逆向工程师来说,解读还原出源代码只是时间问题。

  • 《Android LayoutInflater 源码解析》:大家对 LayoutInflater 一定不陌生,LayoutInflater 是一个用于将 xml 布局文件加载为 View 或者 ViewGroup 对象的工具,我们可以称之为布局加载器。在 Fragment 的 onCreateView 方法、ListView Adapter 的 getView 方法等许多地方都可以见到它的身影。本文详细介绍了 LayoutInflater 的用法以及加载布局的工作原理。

  • 《从源码出发浅析 Android TV 的焦点移动原理》:Android TV 开发,和手机开发很大的一个不同点就是焦点问题。焦点(Focus)可以理解为选中态,在 Android TV 上起很重要的作用。一个视图控件只有在获得焦点的状态下,才能响应按键的 Click 事件。相对于手机上用手指点击屏幕产生的 Click 事件, 在使用 Android TV 的过程中,遥控器是一个主流的操作工具,通过点击遥控器的方向键来控制焦点的移动。文章分上下两篇,详细介绍了 Android TV 的焦点知识。

  • 《Android 恶意软件开发的新技术 | 360 恶意软件专题报告》:2016 年全年,从手机用户感染恶意程序情况看,360 互联网安全中心累计监测到 Android 用户感染恶意程序 2.53 亿,平均每天恶意程序感染量约为 70 万人次。从恶意软件开发技术角度看,2016 年恶意软件利用社会工程学、界面劫持、破解接口、开源项目、简易开发工具、碎片化代码、注入系统根进程、篡改系统引导区以及代理反弹技术,成为主要使用的新技术。

  • Android语言 & 开发架构