BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 郭亮 关注 18 他的粉丝 发布于 2017年3月9日. 估计阅读时间: 7 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

新闻

  1. 《Android Studio 2.3 正式版发布》:谷歌最近公布了Android Studio 2.3正式版。新版本增加了对WebP的支持;ConstraintLayout库支持更新和布局编辑器的部件面板。提供一个新的App Link助手可以帮助你在应用中构建Uri的统一视图。新的运行按钮提供更直观和可靠的立即运行体验。最后是Android模拟器的测试,支持文本的复制和粘贴。

  2. 《谷歌为Play商店推全新广告模式:游戏试玩》:在近期举办的GDC2017(游戏开发者大会)上,谷歌公布了一项Google Play商店的新功能——Playables,这个新功能实际上是一种全新的广告模式:用户在看中一个游戏之前,可以先玩一下该游戏的“精简版“,然后再决定是否购买。

  3. 《1月中国智能手机市场:苹果iPhone微增,小米大跌》:数据研究机构赛诺发布了2017年1月中国智能手机市场报告,其中OPPO和vivo再次成为赢家,销售量分别增长12.9%和13.7%,夺得冠亚军的头衔。此外,iPhone的销售量也微增1.8%,排名第三,而且其销售额达到269亿元,占据整体市场29.4%的份额,目前占时无人能撼动。

教程

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

  2. 《浅谈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下面的使用。

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

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

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

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

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

开源项目

  1. Android-Debug-Database:Android Debug Database 是一个功能强大的数据调试工具。使用改工具,我们可以通过浏览器查看、编辑数据库、shared preferences,强烈推荐使用。

  2. vlayout:vlayout是手机天猫Android版内广泛使用的一个基础UI框架项目。提供了一个用于RecyclerView的自定义的LayoutManger,可以实现不同布局格式的混排,目标是支撑客户端native页面的快速开发。它也是Tangram框架的基础模块。

  3. MarkdownView:该库支持Markdown格式的文本显示。

  4. WeiXinRecordedDemo:高仿微信视频录制,涂鸦水印添加,基于ffmpeg实现了视频拍摄及合成,图片与视频合成等。


感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

文章有误 by Law Elvis

“xposed是阿里开源的框架”应该是改为“dexposed是阿里开源的框架”

Re: 文章有误 by Amos Xu

感谢指出,已修正。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT