Android开发技术周报 Issue#108
wangc
8年前
<h3>新闻</h3> <ol> <li> <p><a href="/misc/goto?guid=4959727902459115302" rel="nofollow,noindex">驾驶不分心:Google为Android Auto启用语音触发指令</a></p> </li> <li> <p><a href="/misc/goto?guid=4959727902548643161" rel="nofollow,noindex">谷歌计划下个月6日向Nexus设备推送Android 7.1.1</a></p> </li> <li> <p><a href="/misc/goto?guid=4959727902634900248" rel="nofollow,noindex">Android 7.1现BUG:无法查看iPhone 7发来的截图</a></p> </li> </ol> <h3>教程</h3> <ol> <li> <p><a href="/misc/goto?guid=4959727902716942130" rel="nofollow,noindex">如何测试RxJava代码</a></p> <p>假设你已经阅读过RxJava的相关内容,也已经体验过像“ <a href="/misc/goto?guid=4959727902794434580" rel="nofollow,noindex">RxJava入门之实例解析</a> ”中的那些示例,现在打算在自己的代码中探索一下响应式编程了。但是,现在却一直困扰着如何测试那些可能会在代码库中发现的新功能呢?下面我们将探索一下如何测试RxJava代码。</p> </li> <li> <p><a href="/misc/goto?guid=4959727902882197768" rel="nofollow,noindex">ART下的方法内联策略及其对Android热修复方案的影响分析</a></p> <p>为了解决ART模式下的占用Rom空间问题,Tinker曾经花了一个半月时间实现分平台合成。Android N后对内联的新发现,似乎再一次认证了"热补丁不是请客吃饭"这句话。研究或填坑的路可能永远不会停,但Tinker团队有决心与信心可以陪大家一起走下去。ART(Android Runtime)是Android在4.4版本中引入的新虚拟机环境,在5.0版本正式取代了Dalvik VM。ART环境下,App安装时其包含的Dex文件将被dex2oat预编译成目标平台的机器码,从而提高了App的运行效率。</p> </li> <li> <p><a href="/misc/goto?guid=4959727902964735406" rel="nofollow,noindex">分享一个对所有Activity做单元测试的思路</a></p> <p>最近升级了一下我们的Support库,这影响比较大,应该好好测试。这种情况下单元测试能帮助什么呢?我觉得有一定操作空间,于是想做一个“启所有Activity看看会不会崩溃”的功能。手动解析配合MonekyRunner,aapt有一个命令是解析一个apk的AndroidManifest,一开始我就从这上面下手: aapt dump xmltree ${apkpath} AndroidManifest.xml</p> </li> <li> <p><a href="/misc/goto?guid=4959727903046472121" rel="nofollow,noindex">使用Buck构建Android工程</a></p> <p>不论是“QQ音乐”亦或是“全民K歌”,其Android客户端目前都是功能繁多、体量庞大、方法数超过10万的庞大应用。庞大体量的工程带来了构建工程的一个突出问题:构建耗时过长。耗时问题既影响了本地开发又影响了服务器上的持续集成,而且,随着产品功能不断迭代,应用体量势必还要进一步攀升,导致了工程全量构建耗时越来越长。为了减少构建耗时,提高开发效率,我们也在不断学习、尝试一些加速构建的策略,除了使用常见的Gradle守护进程、增量构建等Gradle已有的加速方式,市面上常见的加速构建工具也有所涉猎,例如LayoutCast, FreeLine, Instant Run以及Buck等等。</p> </li> <li> <p><a href="/misc/goto?guid=4959727903126841994" rel="nofollow,noindex">了解Android Studio 2.2中的APK打包</a></p> <p>在 Android 7.0 Nougat 中引入了全新的 APK Signature Scheme v2 后,我们决定重新设计汇编 APK 在 Android Gradle 插件中的工作方式。您可以在文档中阅读有关 v2 签名的所有底层技术信息,下面只是简要介绍您作为 Android 应用开发者所需了解的信息:1.用于验证 APK 完整性的 APK 加密签名现在直接位于 ZIP Central Directory 前面。2.在 v1 中,签名通过整个 APK 文件的二进制内容进行计算并验证,而不是通过归档中每个文件的已解压文件内容。 可同时通过 v1 和 v2 签名对 APK 进行签署,以使其仍能向后兼容以前的 Android 版本。</p> </li> </ol> <h3>开源库 & App</h3> <ol> <li> <p><a href="/misc/goto?guid=4959727903208799760" rel="nofollow,noindex">smart-scheduler-android</a></p> <p>A utility library for scheduling periodic and non-periodic jobs efficiently.</p> </li> <li> <p><a href="/misc/goto?guid=4959727903308978401" rel="nofollow,noindex">AndroidPageFlip</a></p> <p>3D Style Page Flip on Android</p> </li> <li> <p><a href="/misc/goto?guid=4959727903389459564" rel="nofollow,noindex">coordinators</a></p> <p>Simple MVWhatever for Android</p> </li> <li> <p><a href="/misc/goto?guid=4959727903474477402" rel="nofollow,noindex">TContributionsView</a></p> <p>TContributionsView can be use for a Contributions View, like in one personal homepage of Github, and more than that.</p> </li> <li> <p><a href="/misc/goto?guid=4959727903556936010" rel="nofollow,noindex">SilkySignature</a></p> <p>A smooth and silky signature pad for android.</p> </li> <li> <p><a href="/misc/goto?guid=4959727903643103301" rel="nofollow,noindex">screenrecordlibrary</a></p> <p>该library可以很方便的在android5.0以上的系统上实现屏幕录像功能</p> </li> <li> <p><a href="/misc/goto?guid=4959727903727627636" rel="nofollow,noindex">ScrollablePanel</a></p> <p>A flexible view for providing a limited rect window into a large data set,just like a two-dimensional RecyclerView.</p> </li> <li> <p><a href="/misc/goto?guid=4959727903801899069" rel="nofollow,noindex">ScrollParallaxImageView</a></p> <p>Provides parallax effects when ImageView scrolls in the screen.</p> </li> <li> <p><a href="/misc/goto?guid=4959727903897604577" rel="nofollow,noindex">PinchZoomTextView</a></p> <p>A TextView library that allows the user to increase/decrease font size with a two finger gesture by the user.</p> </li> </ol> <h3>工具</h3> <ol> <li> <p><a href="/misc/goto?guid=4959727903973790237" rel="nofollow,noindex">火线</a></p> <p>静态代码检测工具</p> </li> <li> <p><a href="/misc/goto?guid=4959727904056546708" rel="nofollow,noindex">Kobiton</a></p> <p>A new testing platform that empowers mobile developers to build great products faster.</p> </li> <li> <p><a href="/misc/goto?guid=4959727904140621478" rel="nofollow,noindex">UserFlows</a></p> <p>A plugin for generating flow diagrams from Artboards in Sketch.</p> </li> </ol> <h3>活动</h3> <ol> <li> <p><a href="/misc/goto?guid=4959723989392897436" rel="nofollow,noindex">Google Developer Day China 2016</a></p> <p>今年,Google 开发者大会将于12月8日和12月14日分别在北京和上海举办。帝都的小伙伴们到时候面基哦:smile:,不能去现场的可以看直播,直播地址: <a href="/misc/goto?guid=4959727904250189249" rel="nofollow,noindex">http://www.google.cn/events/developerday2016/livestream/</a></p> </li> </ol> <h3>设计</h3> <ol> <li> <p><a href="/misc/goto?guid=4959727904331392956" rel="nofollow,noindex">全新的Uber App设计</a></p> <p>声势浩大的改版设计总使人望而生畏。有太多变化与未知,有可能会失败。但我们知道,如果想要打造未来,我们就得欣然接受挑战。这就意味着不仅仅是在外观上下赌注,也是在重新想象整个流程。Uber原本的主旨很简单,“按下按钮,搭上一辆车。”你不必设定目的地,也不必选择产品,只要按一下按钮,或者两下,之后就不用管了</p> </li> <li> <p><a href="/misc/goto?guid=4959727904412996459" rel="nofollow,noindex">Mobile Design Best Practices</a></p> <p>一些移动设计的最佳实践</p> </li> <li> <p><a href="/misc/goto?guid=4959727904487216332" rel="nofollow,noindex">为什么要用SVG?- svg与iconfont、图片多维度对比</a></p> <p>SVG是一种可缩放矢量图形(英语:Scalable Vector Graphics,SVG)是基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。SVG由W3C制定,是一个开放标准。简单的理解它是图形的另一种格式例如它和常见的图片格式.png、.jpg、.gif等是一类。</p> </li> </ol> <h3> </h3> <p> </p> <p>来自:http://www.androidweekly.cn/android-dev-weekly-issue-108/</p> <p> </p>