Android开发技术周报 Issue#101

JeramyIXN 4年前
   <p><img src="https://simg.open-open.com/show/6c758e67d81ba5760a14e029ef86446f.jpg"></p>    <h3><strong>新闻</strong></h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959721128603877419" rel="nofollow,noindex">[视频]Android版Google Assistant已流出:体验方法如下</a></p> </li>     <li> <p><a href="/misc/goto?guid=4959721128603877419" rel="nofollow,noindex">Android 7.1 Nougat正式版定于今年12月到来</a></p> </li>    </ol>    <h3><strong>教程</strong></h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959721128704999414" rel="nofollow,noindex">理解Android进程启动之全过程</a></p> <p>Android系统将进程做得很友好的封装,对于上层app开发者来说进程几乎是透明的. 了解Android的朋友,一定知道Android四大组件,但对于进程可能会相对较陌生. 一个进程里面可以跑多个app(通过share uid的方式), 一个app也可以跑在多个进程里(通过配置Android:process属性).再进一步进程是如何创建的, 可能很多人不知道fork的存在. 在我的文章理解Android进程创建流程 集中一点详细介绍了Process.start的过程是如何一步步创建进程.本文则是从另个角度来全局性讲解android进程启动全过程所涉及的根脉, 先来看看AMS.startProcessLocked方法.</p> </li>     <li> <p><a href="/misc/goto?guid=4959721128796542414" rel="nofollow,noindex">重新认识AndroidStudio和Gradle,这些都是你应该知道的</a></p> <p>本文要从AndroidStudio的环境安装升级,Gradle,Eclipse转AS,多渠道配置,Maven私服,Action,Option,快捷键等几个方面出发,讲一些操作技巧以及我对AndroidStudio使用的一些理解与经验。本文较全面的讲述了我们在开发中必须要了解的,比较多而全,可能不能马上记住,目的在于大家看完之后能有一个认识,在需要使用的时候知道有这么个东西。希望对你的开发工作有所帮助,不足之处,请批评指正。</p> </li>     <li> <p><a href="/misc/goto?guid=4959721128880485944" rel="nofollow,noindex">【译】Android泄漏模式:View中的订阅</a></p> <p>我们通过一些自定义的view来构建Square的注册模块。有时候这些view需要监听一个比他们自身声明周期还要长的对象。例如,一个HeaderView(译者注:类似于头像控件)可能需要监听用户名的改变,而这个用户名来自于一个Authentic单例。onFinishInflate()是一个用来填充自定义view,并试图找到其子view的绝佳时机。所以我们决定在这个地方处理绑定视图的逻辑,并订阅用户名的变化。</p> </li>     <li> <p><a href="/misc/goto?guid=4959721128965298620" rel="nofollow,noindex">QFix探索之路—手Q热补丁轻量级方案</a></p> <p>QFix 是手Q团队近期推出的一种新的 Android 热补丁方案,在不影响 app 运行时性能(无需插桩去 preverify)的前提下有效地规避了 dalvik 下”unexpected DEX”的异常,而且还是很轻量级的实现:只需调用一个很简单的方法就能办到。手Q从去年开始研究补丁方案,当时微信的 Tinker 还没有推出,考虑到兼容性和稳定性,就选用了 java 反射 hack classloader 的方案,而且和当时已经很成熟的分 dex 从原理上很类似,主要的难点是如何解决 Qzone 发现的 dalvik 下”unexpected DEX”异常,由于没有研究出其它方法,就沿用了 Qzone 原创的插桩去 preverify 的解决方案,自2016年1月热补丁开始在手Q正式版本投入使用,至今解决问题十多个,修复效果十分明显,稳定性也很好。</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129043040528" rel="nofollow,noindex">豆瓣的混合开发框架 -- Rexxar</a></p> <p>混合开发的直白解释是 Native 和 Web 技术都要用。但形式上,应用仍然和浏览器无关,用户还是需要在 App Store 和 Android Market 下载应用。只是在开发时,开发者以 Native 代码为主体,在合适的地方部分使用 Web 技术。比如在 iOS 中的 UIViewController 内放置一个 UIWebview(一个浏览器引擎,只拥有渲染 HTML,CSS 和执行 JavaScript 的核心功能)。这样,部分用户界面就可以在 UIWebView 中使用 Web 技术实现。</p> </li>    </ol>    <h3><strong>开源库&项目</strong></h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959721129141529507" rel="nofollow,noindex">Sprayscape</a></p> <p>Google 开源的一个专为 VR 设计的相机 App</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129222271839" rel="nofollow,noindex">DiagonalLayout</a></p> <p>With Diagonal Layout explore new styles and approaches on material design</p> </li>     <li> <p><a href="/misc/goto?guid=4959720771550000205" rel="nofollow,noindex">ImageTransition</a></p> <p>A small android library to transition between a circular ImageView from one Activity to a rectangular ImageView in the launched Activity.</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129340203796" rel="nofollow,noindex">PageIndicatorView</a></p> <p>An page indicator for Android ViewPager</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129422022094" rel="nofollow,noindex">MobileVisionBarcodeScanner</a></p> <p>Barcode Scanner supported by Mobile Vision Api</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129509232233" rel="nofollow,noindex">FiftyShadesOf</a></p> <p>An elegant context-care loading placeholder for Android</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129602923240" rel="nofollow,noindex">BubbleTab</a></p> <p>Put some bubble in your tabs and give your apps a supa fresh style !</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129694807931" rel="nofollow,noindex">Debug Bottle</a></p> <p>Android Java / Kotlin 程序员开发调试工具。Debug Bottle的所有功能均建立在App的debug版本中,不会对release版本产生任何影响。Debug Bottle旨在提高开发效率,把控App质量。</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129777611361" rel="nofollow,noindex">rexxar-android</a></p> <p>Rexxar 是一个针对移动端的混合开发框架。现在支持 Android 和 iOS 平台。Rexxar-android 是 Rexxar 在 Android 系统上的客户端实现。</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129860139328" rel="nofollow,noindex">FingerprintAuthHelper</a></p> <p>A small library that allows You to easily manage fingererprint authentication inside your Activity or Fragment on devices with fingerprint scanner and Android M and higher. Min sdk 14</p> </li>     <li> <p><a href="/misc/goto?guid=4959721129947108034" rel="nofollow,noindex">BottomSheetPickers</a></p> <p>BottomSheetPickers is a set of new time pickers for Android that can be used in place of the stock time picker</p> </li>    </ol>    <h3><strong>技术之外</strong></h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959721130036284474" rel="nofollow,noindex">啥是Design Sprint设计冲刺?</a></p> </li>     <li> <p><a href="/misc/goto?guid=4959721130139058930" rel="nofollow,noindex">吴军博士硅谷第一封来信:不做伪工作者</a></p> </li>    </ol>    <h3><strong>职位内推</strong></h3>    <ol>     <li> <p><a href="http://weibo.com/ttarticle/p/show?id=2309404030072645391967&retcode=6102" rel="nofollow,noindex">美团点评诚招Android工程师</a></p> <p>北京望京/20~40K/15.5 薪/日均超过1.4场次的各种技术分享/各种面授培训/外部大牛技术分享/简历发送至:ouyanghaibing@meituan.com</p> </li>    </ol>    <h3> </h3>    <p> </p>    <p>来自:http://www.androidweekly.cn/android-dev-weekly-issue-101/</p>    <p> </p>