BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Android开发周报:Android 6.0源码发布、React Native For Android架构初探

| 作者 郭亮 关注 18 他的粉丝 发布于 2015年10月13日. 估计阅读时间: 8 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

新闻

  1. 《谷歌发布安卓6.0源码》:按照计划,谷歌近日正式开启了Nexus设备Android 6.0 Marshmallow系统的OTA升级推送。目前,持有Nexus5/Nexus6/Nexus7(2013)/Nexus9/Nexus Player等设备的用户或许已经收到更新提示。同时谷歌在AOSP上公布了Android 6.0的源码。源码地址在这里
  2. 《Android Lollipop装机率已达23.5%》:谷歌近日公布了10月份安卓系统各版本的装机率情况,数据基于10月5号前一周内访问Play Store的安卓设备所用的系统情况。Android Lollipop系统(包括Android 5.0和安卓5.1)占有率从上月的21%增加到了23.5%,其它版本的安卓系统占有率则有所下降。Android Lollipop系统已经正式发布一年左右了,目前其占有率才仅有23.5%,这个数据也充分表明了安卓系统目前的碎片化情况依然严重。
  3. 《Android跑Windows程序不是梦:Wine安卓版年底前将至》:Windows运行Android应用程序早已经不是什么新鲜的事情,因为微软最新的“Project Astoria”项目就是让Windows 10系统通过内置的Android子系统实现应用兼容。近日,一家名为CodeWeavers的开发工作室,发布了一个有趣的跨平台项目“CrossOver for Android”,即让Android平板电脑和智能手机通过旗下的“兼容层”来运行Windows平台上的应用程序。该项目将于2015年底前正式发布。

教程

  1. 《React Native For Android 架构初探》: Facebook 在9月份发布了React Native for Android,把JavaScript开发技术扩展到了Android平台。React Native 让开发者使用JavaScript和React编写应用,利用相同的核心代码就可以创建基于Web,iOS 和Android平台的原生应用。本文浅析了Android React的架构及相关基础知识,能够帮助我们了解React Native For Android的架构、通信原理等知识点。React Native应该是目前体验最好的跨平台技术,国内多个知名厂商已经开始使用React Native,希望更多的开发者能尽快掌握这项技术。
  2. 《Android ListView功能扩展,实现高性能的瀑布流布局》:ListView的设计堪称经典,可以说是Android系统的重量级选手。虽然ListView的API使用起来还算简单,但其实现结构还是相当复杂的。瀑布流是市面上比较流行的一种布局方式,目前实现该效果比较好的项目有StaggeredGridLayoutManager、 PinterestLikeAdapterView等。本文提供了一种实现瀑布流的思路,通过完全模拟ListView的设计原理来解决瀑布流的效率问题、OOM问题。使用ListView进行组件重写,对于我们掌握ListView、Android系统组件的设计原理有很大帮助。
  3. 《 Android应用开发性能优化完全分析》:性能优化是一个很大的话题,具体到某一个点都会有两位数以上的优化技巧。关于性能优化的技术文章也是层出不穷,很多做Android开发的同学随便就能提出一堆优化建议。但正如作者在文中指出的现象,很少有较为系统的进行真正性能分析的案例,很多人也只是背书而已。本文是一篇分析性能的精品文章,从性能原理到真实场景案例,非常详细的解读了Android开发中的性能问题。当然,要掌握性能优化技巧,还是得靠经验和实战,所以希望大家能将文中的技巧快速用于生产环境。
  4. 《Android应用Loaders全面详解及源码浅析》:在Android中任何耗时的操作都不能放在UI主线程中,所有耗时的操作都需要使用异步实现。同样的,在ContentProvider中也可能存在耗时操作,这时也该使用异步操作,而3.0之后最推荐的异步操作就是Loader。它可以方便我们在Activity和Fragment中异步加载数据,而不是用线程或AsyncTask。Loader的优点有提供异步加载数据机制、对数据源变化进行监听,实时更新数据、在Activity配置发生变化(如横竖屏切换)时不用重复加载数据。分析Loaders的文章比较少,本文值得那些对Loaders还不太熟练的同学阅读学习。

  5. 《美团Android资源混淆保护实践》:Android应用中的APK安全性一直遭人诟病,市面上充斥着各种被破解或者汉化的应用,破解者可以非常简单的通过破解工具就能对一个APK进行反编译、破解、汉化等等,这样就可以修改原有代码的逻辑、添加新代码、添加或修改资源、或者更有甚者植入病毒等等。我们可以通过各种混淆、加固工具对代码进行保护,但资源文件依然会完全暴露。本文分享了如何采用常规方式对APK中的资源文件进行保护,从而将应用的安全性再提升一个等级。

  6. 《带你一步一步走出MultiDex的那些坑》:Dalvik Executable (DEX)文件的总方法数被限制在65536以内,其中包括Android framwork method,lib method,还有你的code method。所以很多同学都遇到过方法数超限的问题。对于该问题,Android官方推出了自己的解决方案,但却不能满足所有应用的需求。本文作者记录了从发现MultiDex问题,然后寻找解决方案到最后问题解决的整个过程,文中提到了不同解决方案中的那些坑,相信本文能让你的代码走出限制。
  7. 《React Native for Android发布独立安装包》:上期的周报中有一篇是作者介绍React Native for Android的文章,本期持续更新作者的动态。已经开始使用React Native Android的开发者应该知道,开发的时候必须启动JS Server,然后要让手机连接这个Server,否者会出现那个"吓人"的红色屏幕。如果要发布一个React Native写的 Android应用,不可能要别人来连接这个JS Server。可不可以不要连接这个Server就能运行呢?本文给出了解决方案。

开源项目

  1. ExplosionField:这是一个效果非常酷炫的View炸裂特效,类似于MIUI卸载APP时的动画效果。国内的开发者写了一篇分析该项目的文章,对于项目中高质量代码进行了详解。
  2. FabricView:FabricView是一个Android画板,支持颜色选择、添加文字、添加图片等功能。
  3. 简诗:这是一款以中国风的样式呈现内容的App,项目中使用的排版、字体很美。
  4. PinterestView:自定义菜单实现,长按按钮时会弹出一个漂亮的菜单,效果模仿自Pinterest。

感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT