Android开发周报:Android厂商寒冬将至、Android内存申请分析
WilliemaeBa
8年前
<h2>新闻</h2> <ol> <li> <p><a href="/misc/goto?guid=4959675466145400002" rel="nofollow,noindex">《Android Marshmallow/Nougat 进行时:设备升级列表已公布》</a> :近日Google携众厂商发布了Android Marshmallow和Android Nougat的设备升级列表。Nexus系列一直是重点关怀对象,从最新的Nexus 6P/5X、Nexus 6 / Player、Nexus 9 LTE / WiFi,到Nexus 5、以及Nexus 7 2013(双版本),均支持升级到“棉花糖”(Marshmallow)。此外,前半截还很有望吃到“牛轧糖”(Nougat)。</p> </li> <li> <p><a href="/misc/goto?guid=4959675466233927981" rel="nofollow,noindex">《Android阵营集体悲剧》</a> :短短几周内,安卓厂商负面新闻不断。先是索尼关停了自己在巴西的智能机生产线,随后戴尔退出安卓阵营,而一直表现不错的LG则因为旗舰G5销量差更换了多名高管。其实这种情况的出现并非意外,毕竟智能机销量正在放缓,但加入战团的厂商却越来越多,僧多粥少必然会造成某些厂商铩羽而归。</p> </li> </ol> <h2>教程</h2> <ol> <li> <p><a href="https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651112433&idx=1&sn=f50bd52f056570e3229307fba9d9839a&scene=0&key=77421cf58af4a6537dac2477c4f6349c42077f663e9eb1de49ddaccc7ba5b3232896f1b225e2958452abfa951f9fb2a1&ascene=0&uin=Mjc3OTU3Nzk1&devicetype=iMac+MacBookPro10%2C1+OSX+OSX+10.10.5+build%2814F1808%29&version=11020201&pass_ticket=ITDgY8jmrXUfwFXFF5dIXjjUGT%2Bjosrkf8JctrkEiM3n%2F5PmuQjtbzHuMvPqa8Qq" rel="nofollow,noindex">《不要再给MVP中的Presenter写接口了》</a> :几个月前Google发布了一个官方MVP示例项目,在项目中,Google首先写一个上帝接口BasePresenter,然后在每个功能模块里都写了协议类名为某某Contract,在其中封装了模块下的View接口和Presenter接口。这种管理方式的好处是,将View和Presenter管理起来,强化其一一对应的关系,便于操作。不论是否以协议类的方式呈现,现在开发者喜欢让Presenter继承接口。而本文观点正好相反,本文的观点不一定正确,但希望能引起你对这个问题的思考。</p> </li> <li> <p><a href="https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286327&idx=1&sn=b69513e3dfd1de848daefe03ab6719c2&scene=0&key=77421cf58af4a6534faae2e39a1d2002b59a2cb93ebb02079993c95a37d13d7c24f6bfaf40956c8d768fc5d14555ba3e&ascene=0&uin=Mjc3OTU3Nzk1&devicetype=iMac+MacBookPro10%2C1+OSX+OSX+10.10.5+build%2814F1808%29&version=11020201&pass_ticket=ITDgY8jmrXUfwFXFF5dIXjjUGT%2Bjosrkf8JctrkEiM3n%2F5PmuQjtbzHuMvPqa8Qq" rel="nofollow,noindex">《Android内存申请分析》</a> :在做优化的过程,除了关注内存的申请量以及GC的情况之外,我们经常需要想方法找出是那些对象占用了大量内存,以及他们是如何导致GC的,这意味着我们需要获取对象申请的信息(大小,类型,堆栈等),本文为我们介绍了几种获取对象申请信息的方法。</p> </li> <li> <p><a href="https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651112424&idx=1&sn=51401124fbab3917520cc889dae824fe&scene=0&key=77421cf58af4a653c35e3896fbd88a5aaf81c7cef4dc5d718bd0a689492b257d1c5bb6f9f612c88d7dcb0b5b61e75cf5&ascene=0&uin=Mjc3OTU3Nzk1&devicetype=iMac+MacBookPro10%2C1+OSX+OSX+10.10.5+build%2814F1808%29&version=11020201&pass_ticket=ITDgY8jmrXUfwFXFF5dIXjjUGT%2Bjosrkf8JctrkEiM3n%2F5PmuQjtbzHuMvPqa8Qq" rel="nofollow,noindex">《为什么Android开发者应该使用FlatBuffers替代JSON?》</a> :你可能会问,既然我们已经有很标准的JSON以及转换库比如GSON和Jackson,为什么还要使用新的工具呢?不妨先试一下FlatBuffers,然后你就会发现它比JSON快得多。FlatBuffers是一个高效的跨平台序列化类库,可以在C++、C#、C、Go、Java、JavaScript、PHP和Python中使用。是Google开发的,是为了应用在游戏开发,以及其他注重性能的应用上。</p> </li> <li> <p><a href="https://mp.weixin.qq.com/s?__biz=MzI1NjEwMTM4OA==&mid=2651231917&idx=1&sn=ce2e0f7251e26f7b5a9b2fddadf96bcc&scene=0&key=77421cf58af4a6538ddde6e20b40af64e328d39945bf4b89c5617dd2139cca8b4a6e1aae9ac70d3d854bf2dac4ef1a73&ascene=0&uin=Mjc3OTU3Nzk1&devicetype=iMac+MacBookPro10%2C1+OSX+OSX+10.10.5+build%2814F1808%29&version=11020201&pass_ticket=ITDgY8jmrXUfwFXFF5dIXjjUGT%2Bjosrkf8JctrkEiM3n%2F5PmuQjtbzHuMvPqa8Qq" rel="nofollow,noindex">《Unity Android Plugin开发指南》</a> :本文为我们介绍了如何在Unity工程中使用Android或者Java的库,包括:如何在Unity项目中使用Android Plugin、Unity-Android相互调用、Unity接口设计的最佳实践、如何构建Unity-Android混合项目、如何调试Unity和Android代码。本文有助于我们上手Unity。</p> </li> <li> <p><a href="https://mp.weixin.qq.com/s?__biz=MzAwNzc4OTYwMA==&mid=2653509714&idx=1&sn=3685cb9135b4f0769ac9712d142862f5&scene=1&srcid=0710SwyrVNwkMT2kDdcJBViJ&key=77421cf58af4a653f60101d0b5e9bcf7d55fea862078068c54c91ea4d2e8f3e36b04bb37bcef934172a15e6be549dd60&ascene=0&uin=Mjc3OTU3Nzk1&devicetype=iMac+MacBookPro10%2C1+OSX+OSX+10.10.5+build%2814F1808%29&version=11020201&pass_ticket=ITDgY8jmrXUfwFXFF5dIXjjUGT%2Bjosrkf8JctrkEiM3n%2F5PmuQjtbzHuMvPqa8Qq" rel="nofollow,noindex">《安卓单元测试(八):Junit Rule的使用》</a> :一个JUnit Rule就是一个实现了TestRule的类,这些类的作用类似于@Before、@After,是用来在每个测试方法的执行前后执行一些代码的一个方法。此外,JUnit Rule还能做一些@Before这些Annotation做不到的事情,那就是他们可以动态的获取将要运行的测试类、测试方法的信息。阅读文章,了解Junit Rule的更多细节。</p> </li> <li> <p><a href="/misc/goto?guid=4959675466725231156" rel="nofollow,noindex">《Google I/O 2016笔记:APK瘦身的正确姿势》</a> :业务逻辑不断累积、引入的第三方SDK不断增加以及图片资源不变变大,APK瘦身已经是每个Android应用开发者不得不考虑的问题了。坊间流传的各种瘦身方法有些切实可行,有的却流毒甚广。本文为我们总结了2016 Google I/O大会上提到的瘦身技术。</p> </li> <li> <p><a href="/misc/goto?guid=4959675466826352260" rel="nofollow,noindex">《Android Vector曲折的兼容之路》</a> :Android 5.0发布的时候,Google提供了Vector的支持。Vector Drawable相对于普通的Drawable来说,好处很多,比如:可以自动进行适配、大幅减少图像的体积、使用简单,很多设计工具支持、成熟、稳定,前端已经非常广泛的进行使用了。本文详细介绍了Vector的兼容之路,并讲解了Vector的使用方法。</p> </li> <li> <p><a href="/misc/goto?guid=4959675466897371481" rel="nofollow,noindex">《深度理解Android InstantRun原理以及源码分析》</a> :Instant Run是Android Studio2.0以后新增的一个运行机制,能够显著减少你第二次及以后的构建和部署时间。简单通俗的解释就是,当你在Android Studio中改了你的代码,Instant Run可以很快的让你看到你修改的效果。而在没有Instant Run之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修改后的效果本文详细深度介绍了Android InstantRun原理并且结合其源码分析了实现细节。本文有助于我们扩张插件化的思路。</p> </li> </ol> <h2>开源项目</h2> <ol> <li> <p><a href="/misc/goto?guid=4959675466978814325" rel="nofollow,noindex">Music-Player</a> :这是一款简易的音乐播放器,列表页到播放页的切换动画很赞。 <a href="/misc/goto?guid=4959675467057374005" rel="nofollow,noindex">这里</a> 是一篇介绍项目实现过程的文章。</p> </li> <li> <p><a href="/misc/goto?guid=4959675215838210265" rel="nofollow,noindex">FocusResize</a> :该项目实现了RecyclerView在滑动时动态伸缩的效果。</p> </li> <li> <p><a href="/misc/goto?guid=4959675467165969766" rel="nofollow,noindex">VirtualApp</a> :VirtualApp是一个App虚拟引擎的开源实现,类似LBE平行空间。 VirtualApp在你的App进程内创建一个虚拟空间,你可以在虚拟空间内任意的安装、启动和卸载APK, 这一切都与外部隔离,就如同一个沙盒。VirtualApp亦是一个插件化框架,运行在VirtualApp的插件不需要任何的约束。</p> </li> </ol> <h2>报告</h2> <ol> <li> <p><a href="/misc/goto?guid=4959675467244315550" rel="nofollow,noindex">《中国Android生态大数据报告 (五月)》</a> :和苹果iOS系统不同,Android系统的开放性,使得整个生态(特别是在中国)呈现出复杂的多元性。而其中对于 APP的整体表现评价和数据监测判断,也就变得更加困难。本报告数据分别来自腾讯应用宝大数据团队,星APP榜单数据团队,和企鹅智酷对4525名网民的独家调研,数据经过精准抽样和分层处理。</p> </li> <li> <p><a href="https://mp.weixin.qq.com/s?__biz=MzA5OTMxMjQzMw==&mid=2648112527&idx=1&sn=b23c1b5f3e32e343ad96d705bd4d63ff&scene=1&srcid=0711SVtLTxYXurfDvMqW2LJi&key=77421cf58af4a6539e507304f3ba7258db54cc7d09d0da0d4d384e54aa5536776c95d86cfb4e18a26e41586ef17e83bd&ascene=0&uin=Mjc3OTU3Nzk1&devicetype=iMac+MacBookPro10%2C1+OSX+OSX+10.10.5+build%2814F1808%29&version=11020201&pass_ticket=ITDgY8jmrXUfwFXFF5dIXjjUGT%2Bjosrkf8JctrkEiM3n%2F5PmuQjtbzHuMvPqa8Qq" rel="nofollow,noindex">《国内Top500Android应用分析报告》</a> :本报告是作者针对豌豆荚上Top500的应用进行分析后得出的,报告主要从MiniSDK、largeHeap、Methods、引用的开源项目以及使用RXJava的情况等纬度展开。</p> </li> </ol> <p> </p> <p><a href="/misc/goto?guid=4959675467412841011">阅读原文</a></p> <p> </p>