Android开发技术周报 Issue#94

vcclass 3年前
   <h3>新闻</h3>    <ol>     <li> <p><a href="http://m.weibo.cn/2401232554/4009923873962028/weixin?wm=3333_2001&from=1068293010&sourcetype=weixin" rel="nofollow,noindex">Android Support Library 24.2.0 更新</a></p> <p>Android Support Library 24.2.0 更新。新版本不再支持 Android 2.2 (API level 8) 及以下版本,即支持 Android 2.3 (API level 9) 及以上版本。此外,过去单一的 support-v4 现在被分成多个子库以改进效率、减少应用体积。</p> </li>    </ol>    <h3>教程</h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959677352417159193" rel="nofollow,noindex">Android 最新 Support V4 包大拆分有用吗?</a></p> <p>Google 昨天更新了最新的 Support Library 版本,其中最为显眼的功能莫过于 support-v4 大拆分,然后这个拆分现在看来并没有那么美好。v4 包从 2011 年开始引入,包含 ViewPager、FragmentActivity 等我们常用的功能,目前已经达到 1.3 M,Google 此次升级将这个库拆分为 5 个子的 Module,每个 Module 可以被单独引用。</p> </li>     <li> <p><a href="/misc/goto?guid=4959677352502995699" rel="nofollow,noindex">Android卡顿性能监测方案对比</a></p> <p>近期在研究关于 Android 卡顿性能监控,分别验证了两种相对有效的监测方案:1. Looper 字符串匹配方案;2. Choreographer 帧率检测方案,这两种方案都可以监控到应用的卡顿现象,但两种方案的适用场景却不太一样,第一种匹配字符串方案能够准确得在发生卡顿时拿到堆栈信息,但有一定的性能损耗,不适用于线上监控;第二种监测帧率的方案不一定能准确堆栈,可能会拿到无关的系统堆栈,对定位问题没有太大帮助,但能够计算出掉帧率。下面我详细介绍一下这两种方案的实现原理和监控效果。</p> </li>     <li> <p><a href="/misc/goto?guid=4959677352578209825" rel="nofollow,noindex">糯米移动组件架构演进之路</a></p> <p>本文介绍了百度糯米移动App,在面临多业务和多渠道时架构的演进,以及对接入层和Hybrid框架的优化。随着糯米在生活服务O2O平台化战略上的转型,大量的自营/第三方垂类业务需要快速接入糯米,对糯米移动App端的架构提出了挑战。在这样的背景下,我们在2015年初开始对糯米App端架构进行改造。</p> </li>     <li> <p><a href="/misc/goto?guid=4959677352659427378" rel="nofollow,noindex">从零开始的Android新项目10 - React Native & Redux</a></p> <p>本篇来讲讲 React Native 和 Redux,和其他一上来就啪啪啪丢上来一堆翻译的东西不同,本文会从简单的例子入手,让大家能快速地明白 React Native 是什么,Redux 和常见的 MVC、MVP 等有什么区别,怎么去组织一个 Redux 架构的 React Native 项目。为避免大家还没入门就放弃,预计下一篇才会从我们项目中的实践出发,讲讲更复杂的应用场景。</p> </li>     <li> <p><a href="/misc/goto?guid=4959677352739734010" rel="nofollow,noindex">【RxJava && Agera】从源码简要分析基本调用流程</a></p> <p>相信很多做Android或是Java研发的同学对RxJava应该都早有耳闻了,尤其是在Android开发的圈子里,RxJava渐渐开始广为流行。同样有很多同学已经开始在自己的项目中使用RxJava。它能够帮助我们在处理异步事件时能够省去那些复杂而繁琐的代码,尤其是当某些场景逻辑中回调中嵌入回调时,使用RxJava依旧能够让我们的代码保持极高的可读性与简洁性。不仅如此,这种基于异步数据流概念的编程模式事实上同样也能广泛运用在移动端这种包括网络调用、用户触摸输入和系统弹框等在内的多种响应驱动的场景。那么现在,就让我们一起分析一下RxJava的响应流程吧。</p> </li>     <li> <p><a href="/misc/goto?guid=4959677352826575390" rel="nofollow,noindex">Android安全开发之WebView中的地雷</a></p> <p>在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等。WebView功能强大,应用广泛,但它是天使与恶魔的合体,一方面它增强了APP的上网体验,让APP功能更多样化,另一方面它也引入了很多的安全问题。在过去几年WebView中被披露的重大漏洞包括了任意代码执行漏洞、跨域、密码明文保存等,这些安全问题可以直接导致用户敏感信息泄露,移动终端被恶意攻击者控制。下文将详细介绍这一系列安全问题,罗列相关的一些案列,并提供相应安全开发建议。</p> </li>     <li> <p><a href="/misc/goto?guid=4959677352906505461" rel="nofollow,noindex">Android GC学到老</a></p> <p>一直到4.4, 我对GC认知应该还停留在Dalvik的GC。ART是啥,一个让性能工程师失业的玩样。哈哈, 开玩笑的。性能工程师永无止尽,就像你不会想到现在PC会有用到需要插三个电源线的显卡(我买了HTC VIVE,顺带被迫买了2K的显卡,震惊了好一阵)。说整体, 要说ART GC, 我们不妨对比一下。这里不多说话,直接简单明了上图。</p> </li>     <li> <p><a href="/misc/goto?guid=4959677352994114556" rel="nofollow,noindex">JAVA代码覆盖率工具JaCoCo-原理篇</a></p> <p>作为一个测试人员,保证产品的软件质量是其工作首要目标,为了这个目标,测试人员常常会通过很多手段或工具来加以保证,覆盖率就是其中一环比较重要的环节。我们通常会将测试覆盖率分为两个部分,即“需求覆盖率”和“代码覆盖率”。需求覆盖:指的是测试人员对需求的了解程度,根据需求的可测试性来拆分成各个子需求点,来编写相应的测试用例,最终建立一个需求和用例的映射关系,以用例的测试结果来验证需求的实现,可以理解为黑盒覆盖。</p> </li>    </ol>    <h3>开源库&项目</h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959677353081907044" rel="nofollow,noindex">Space-Navigation-View</a></p> <p>仿 Space 应用的底部导航</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353153187950" rel="nofollow,noindex">MaterialSearchBar</a></p> <p>Material Design 风格的搜索工具条</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353233781514" rel="nofollow,noindex">SpeedView</a></p> <p>动态的速度计自定义控件</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353323329900" rel="nofollow,noindex">Android-FilePicker</a></p> <p>一个 Material Design 风格的文件选择器,支持文件分类,文件多选</p> </li>     <li> <p><a href="/misc/goto?guid=4959656792450208392" rel="nofollow,noindex">SpiderWebScoreView</a></p> <p>一个蛛网评分控件</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353426509124" rel="nofollow,noindex">AndroidCustomView</a></p> <p>一个简单的投票排名对比图</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353514567675" rel="nofollow,noindex">PloyFun</a></p> <p>一个可以将导入的图片转换成 Low Poly 风格的图片的 App</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353607047639" rel="nofollow,noindex">MultiTypeView</a></p> <p>简化RecyclerView的多种type的adapter,Fragment可以动态添加到RecyclerView上,实现复杂的界面分多个模块开发</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353689848306" rel="nofollow,noindex">EventBus</a></p> <p>通过动态代理接口的形式发布,接收事件的 EventBus 实现</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353775786270" rel="nofollow,noindex">ColoredVector-Andorid</a></p> <p>一个方便你通过代码改变 Vector 图标颜色的工具库</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353859002110" rel="nofollow,noindex">recycler-fast-scroll</a></p> <p>Provides fast scroll and section idexer for recycler view</p> </li>     <li> <p><a href="/misc/goto?guid=4959676885958637917" rel="nofollow,noindex">stag-java</a></p> <p>Stag improves Gson performance by automatically generating reflection-less TypeAdapters for your model objects</p> </li>     <li> <p><a href="/misc/goto?guid=4959677353972796297" rel="nofollow,noindex">robotium-showcase</a></p> <p>This example shows how to use Robotium with ActvitityTestRule and @Test annotation, it means in Google's Espresso way</p> </li>     <li> <p><a href="/misc/goto?guid=4959550695982520997" rel="nofollow,noindex">TableFixHeaders</a></p> <p>TableFixHeaders is an Android widget to display tables with headers</p> </li>     <li> <p><a href="/misc/goto?guid=4959677354088420668" rel="nofollow,noindex">SlackLoadingView</a></p> <p>Slack 的 Loading 动画</p> </li>    </ol>    <h3>工具</h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959677354171978516" rel="nofollow,noindex">御安全</a></p> <p>一个专业平台,免费提供漏洞扫描和应用加固服务,仅限安卓应用</p> </li>     <li> <p><a href="/misc/goto?guid=4959677354255643907" rel="nofollow,noindex">android-strings-search-plugin</a></p> <p>字符串资源搜索插件</p> </li>     <li> <p><a href="/misc/goto?guid=4959677354348431601" rel="nofollow,noindex">标你妹~啊</a></p> <p>一个 UI 设计图标注工具</p> </li>     <li> <p><a href="/misc/goto?guid=4959677354430096415" rel="nofollow,noindex">WebpifyYourAndroidApp</a></p> <p>A small tool to convert your app's png&jpg image files into WebP when possible</p> </li>     <li> <p><a href="/misc/goto?guid=4959677354527602527" rel="nofollow,noindex">Elegant Markdown Editor</a></p> <p>一款优雅的 Markdown 编辑器</p> </li>    </ol>    <h3>设计</h3>    <ol>     <li><a href="/misc/goto?guid=4959677354623617888" rel="nofollow,noindex">如何让你的视觉设计能力更上一层楼?</a></li>    </ol>    <h3> </h3>    <p>来自:http://www.androidweekly.cn/android-dev-weekly-issue-94/</p>    <p> </p>