Android开发技术周报 Issue#102
bsvw8157
8年前
<h3><strong>新闻</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959722056826564752" rel="nofollow,noindex">Android 7.1开发者预览版开放下载</a></p> </li> <li> <p><a href="/misc/goto?guid=4959722056914296875" rel="nofollow,noindex">Android 7.1新功能官方解析:四大亮点 开发者福音</a></p> </li> <li> <p><a href="/misc/goto?guid=4959722057003958265" rel="nofollow,noindex">稳定版Google Pixel Launcher开放下载</a></p> </li> <li> <p><a href="/misc/goto?guid=4959722057074537938" rel="nofollow,noindex">谷歌升级Android Pay安全验证机制 排除Bootloader解锁设备</a></p> </li> <li> <p><a href="/misc/goto?guid=4959722057163742207" rel="nofollow,noindex">Google壁纸应用上架:每天都可换不同壁纸</a></p> </li> </ol> <p style="text-align: center;"><img src="https://simg.open-open.com/show/bf4555d84e784819a58d7ec57ac2ffec.jpg"></p> <h3><strong>教程</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959722057247834240" rel="nofollow,noindex">Android进程绝杀技--forceStop</a></p> <p>话说Android开源系统拥有着App不计其数,百家争鸣,都想在这“大争之世”寻得系统存活的一席之地。然则系统资源有限,如若都割据为王,再强劲的CPU也会忙不过来,再庞大的内存终会消耗殆尽,再大容量的电池续航终会昙花一现。面对芸芸众生,无尽变数,系统以不变应万变,一招绝杀神技forceStop腾空出世,需要具有FORCE <em>STOP</em> PACKAGES权限,当然这个并非第3方app可以直接调用的, 否则App间可以相互停止对方,则岂非天下大乱。</p> </li> <li> <p><a href="/misc/goto?guid=4959722057321946949" rel="nofollow,noindex">从零开始的Android新项目11 - 组件化实践(1)</a></p> <p>这里的组件化,指的是 MDCC 2016 上冯森林提出的《回归初心,从容器化到组件化》。我个人一直是比较反感黑科技的,其中首当其冲的就是 插件化 以及 保活。作为一个开发者,除了研究技术,提高自己以外,是否应该考虑些其他东西呢?尤其是我们这些嵌入式系统(客户端)开发者,在依赖、受哺于系统生态下,是不是应该考虑一下,怎么反哺?怎么去更好地维护这个生态环境,而不是一味破坏、消耗它呢?</p> </li> <li> <p><a href="/misc/goto?guid=4959722057401112887" rel="nofollow,noindex">Android ListView与RecyclerView对比浅析--缓存机制</a></p> <p>RecyclerView是谷歌官方出的一个用于大量数据展示的新控件,可以用来代替传统的ListView,更加强大和灵活。最近,自己负责的业务,也遇到这样的一个问题,关于是否要将ListView替换为RecyclerView?秉承着实事求是的作风,弄清楚RecyclerView是否有足够的吸引力替换掉ListView,我从性能这一角度出发,研究RecyclerView和ListView二者的缓存机制,并得到了一些较有益的"结论",待我慢慢道来。同时也希望能通过本文,让大家快速了解RecyclerView与ListView在缓存机制上的一些区别,在使用上也更加得心应手吧。</p> </li> <li> <p><a href="/misc/goto?guid=4959722057492276245" rel="nofollow,noindex">探索 Java 隐藏的开销</a></p> <p>随着 Android 引入 Java 8 的一些功能,请记住每一个标准库的 API 和语言特性都会带来一些相关的开销,这很重要。虽然设备越来越快而且内存越来越多,代码大小和性能优化之间仍然是有着紧密关联的。这篇 360AnDev 的演讲会探索一些 Java 功能的隐藏开销。我们会关注对库开发者和应用开发者都有关系的优化和能够衡量它们影响的工具。在这篇演讲里面,我将讨论我近六个月以来一直在探索的事情,而且我想披露一些信息。随着你的深入了解,你可能得不到一些明确的能够应用在你的应用程序上的东西。但是,到结束的时候,我会有一些具体的技巧来展示如何避免我今天讲的这些开销。我也会展示许多我使用的命令行工具,这些资源的链接都在文章结束的地方。</p> </li> <li> <p><a href="/misc/goto?guid=4959722057565626467" rel="nofollow,noindex">Android性能优化典范 - 第6季</a></p> <p>这里是Android性能优化典范第6季的课程学习笔记,从被@知会到有连载更新,这篇学习笔记就一直被惦记着,现在学习记录分享一下,请多多指教包涵!这次一共才6个小段落,涉及的内容主要有:程序启动时间性能优化的三个方面:优化activity的创建过程,优化application对象的启动过程,正确使用启动显屏达到优化程序启动性能的目的。另外还介绍了减少安装包大小的checklist以及如何使用VectorDrawable来减少安装包的大小。</p> </li> <li> <p><a href="/misc/goto?guid=4959722057644970869" rel="nofollow,noindex">Atlas:手淘Native容器化框架和思考</a></p> <p>在刚刚过去的云栖大会上,手淘宣布其移动容器化框架Atlas将于2017年年初开源,对这个框架,在过去团队对外部做过一些分享,外界也一直对其十分关注,到现在它终于即将开源了。本文将介绍Atlas的设计思路和手淘对容器化、组件化和动态化上的思考,主要内容来自阿里巴巴资深技术专家倪生华(玄黎)在2016杭州云栖大会上的分享。Atlas是什么?2013年,手淘航母战略的制定,带来了业务和开发人员的翻倍膨胀。从不到100人猛增四五倍,同时业务数量大增,整个客户端的架构和发版节奏受到极大挑战,Atlas作为之前手淘客户端的基础框架,进行了一次大的重构,形成了今天的Atlas。</p> </li> <li> <p><a href="/misc/goto?guid=4959722057724302658" rel="nofollow,noindex">请不要滥用SharedPreference</a></p> <p>SharedPreference是Android上一种非常易用的轻量级存储方式,由于其API及其友好,得到了很多很多开发者的青睐。但是,SharedPreference并不是万能的,如果把它用在不合适的使用场景,那么将会带来灾难性的后果;本文将讲述一些SharedPreference的使用误区。</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=4959722057835124531" rel="nofollow,noindex">RxJava 复杂场景(二):调度</a></p> <p>在本文中,我举了两个复杂的调度场景,结合这两个场景,以及前面讲到的原理,大家对调度的原理应该有了更深刻的理解,后面面对更复杂的调度需求,相信也能轻松地解决了。RxJava 最大的两个特点:事件流操作,异步。组合利用各种操作符,我们可以实现复杂的事件流处理需求,例如前文中提到的缓存:根据一组 id,先从本地查询,本地缺失的部分再从服务器获取,再把两者合并起来返回,最后服务器获取的部分还要保存到本地。</p> </li> </ol> <h3><strong>开源库&项目</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959722057903581301" rel="nofollow,noindex">MaterialRatingBar</a></p> <p>与 Google 系应用设计相同、支持拉伸、修正原生实现诸多问题的星级评分条。</p> </li> <li> <p><a href="/misc/goto?guid=4959722057987318810" rel="nofollow,noindex">GuideView</a></p> <p>最最轻量级的新手引导库,能够快速为任何一个View创建一个遮罩层,支持单个页面,多个引导提示,支持为高亮区域设置不同的图形,支持引导动画,方便扩展,良好支持fragment</p> </li> <li> <p><a href="/misc/goto?guid=4959722058073492305" rel="nofollow,noindex">AndroidHttpCapture</a></p> <p>这是一款针对于移动流量劫持而开发的手机抓包软件 主要功能包括:手机端抓包、PING/DNS/TraceRoute诊断、抓包HAR数据上传分享。</p> </li> <li> <p><a href="/misc/goto?guid=4959722058160416728" rel="nofollow,noindex">BigBang</a></p> <p>一个模仿 Smartisan OS 的 BigBang 功能的 Demo</p> </li> <li> <p><a href="/misc/goto?guid=4959722058238822781" rel="nofollow,noindex">baso</a></p> <p>ProgressBar view with image and retry button</p> </li> <li> <p><a href="/misc/goto?guid=4959722058317161628" rel="nofollow,noindex">Design-Patterns-In-Kotlin</a></p> <p>Design Patterns implemented in Kotlin</p> </li> <li> <p><a href="/misc/goto?guid=4959722058400316419" rel="nofollow,noindex">AdvancedLuban</a></p> <p>一个方便简约的 Android 图片压缩工具库,提供多种压缩策略(包括Luban原有的压缩策略),多种调用方式,自定义压缩,多图同步压缩,专注更好的图片压缩使用体验</p> </li> <li> <p><a href="/misc/goto?guid=4959722058487500310" rel="nofollow,noindex">基于Xmpp协议的即时通讯社交软件(客户端+服务端)</a></p> <p>本项目对于正在学习Xmpp以及javaweb后台的同学,可以看一下。</p> </li> <li> <p><a href="/misc/goto?guid=4959722058567436756" rel="nofollow,noindex">ThreeDLayout</a></p> <p>A 3D Layout for Android,When you use it warp other view,it can became a 3D view</p> </li> <li> <p><a href="/misc/goto?guid=4959722058648664819" rel="nofollow,noindex">BottomDialog</a></p> <p>BottomDialog 是一个通过 DialogFragment 实现的底部弹窗布局,并且支持弹出动画,支持任意布局</p> </li> <li> <p><a href="/misc/goto?guid=4959722058730007266" rel="nofollow,noindex">SafelyAndroid</a></p> <p>Build safely Android app, no more Activity not found, Activity state loss and NPE during fragment transaction!</p> </li> <li> <p><a href="/misc/goto?guid=4959722058803897142" rel="nofollow,noindex">appbarlayout-spring-behavior</a></p> <p>One Behavior help AppBarLayout to scroll spring.</p> </li> <li> <p><a href="/misc/goto?guid=4959722058889387573" rel="nofollow,noindex">GlideBitmapPool</a></p> <p>Glide Bitmap Pool is a memory management library for reusing the bitmap memory</p> </li> <li> <p><a href="/misc/goto?guid=4959716305725318233" rel="nofollow,noindex">Fast-Android-Networking</a></p> <p>A Complete Fast Android Networking Library that also support HTTP/2</p> </li> </ol> <h3><strong>工具</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959722058996227276" rel="nofollow,noindex">python-adb</a></p> <p>Python ADB + Fastboot implementation</p> </li> <li> <p><a href="/misc/goto?guid=4959722059080441762" rel="nofollow,noindex">super-adb</a></p> <p>用busybox加持的功能更加强大的adb shell;不需要root</p> </li> <li> <p><a href="/misc/goto?guid=4959722059157716651" rel="nofollow,noindex">MVPHelper</a></p> <p>一款Intellj IDEA 和Android Studio 自动生成MVP模式所需接口以及实现类的插件</p> </li> </ol> <h3><strong>设计</strong></h3> <ol> <li><a href="/misc/goto?guid=4959722059242492560" rel="nofollow,noindex">Dribbble 2016十大设计趋势总结</a></li> </ol> <h3> </h3> <p>来自:http://www.androidweekly.cn/android-dev-weekly-issue-102/</p> <p> </p>