BT

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

Android开发周报:模块化架构思考、高仿微信开源项目实践

| 作者 郭亮 关注 18 他的粉丝 发布于 2017年2月17日. 估计阅读时间: 6 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

新闻

  1. 《Google手机操作系统二月份统计数据:牛轧糖份额首度超过1%》:Google手机操作系统二月份统计数已经出炉,这个月的数字显示最新的Android操作系统份额终于突破1%。这些数字显示,牛轧糖7.1的份额为0.3%,牛轧糖7.0的份额为0.9%。牛轧糖7.0二月份份额比一月份提升0.4%,牛轧糖7.1的份额提升0.1%,两个牛轧糖版本现在合并份额为1.2%,比上个月增加0.5%。

  2. 《Google发布Android Things开发者第二预览版》:Google在2个月前发布了Android Things,该操作系统旨在为物联网设备提供“Android之力”的加持。今天,该公司又发布了第二个开发者预览版。新编译版本中包含了大量新特性,比如支持英特尔Edison和树莓派3硬件抽象层的USB音频(以及英特尔的 Joule 物联网开发板)。

  3. 《Android的移动网络快速共享功能正式上线了》:之前仅在少数Pixel、Nexus手机上出现的全新快速手机网络共享功能(Instant Tethering),现在终于正式向所有Pixel、Nexus设备开放了。不过,能够自己充当上网主机给其它设备提供连线的还是只有运行Nougat的手机,仍在使用Marshmallow的手机和Pixel C、Nexus 9之类的平板,暂时还是只能接入享用别人的网络而已。

教程

  1. 《Android架构思考(模块化、多进程)》:关于模块化(组件化)这个问题,大部分开发者可能都认真的思考过。随着项目的开发,业务不断壮大,业务模块越来越多,各个模块间相互引用,耦合越来越严重,同时有些项目还伴随着子应用单独包装推广,影子应用单独发布等等需求,重新调整架构迫在眉睫。作者介绍了自己公司项目的演进过程,文章写的很详细,架构也很实用,对大家合理架构项目很有帮助,强烈推荐大家阅读。

  2. 《深入剖析Android中的ArrayMap》:数据集合在任何一门编程语言中都是很重要的一部分,在Android开发中,我们会实用到ArrayList,LinkedList,HashMap等。其中HashMap是用来处理键值对需求的常用集合。而Android中引入了一个新的集合,叫做ArrayMap,为键值对存储需求增加了一种选择。本文深度剖析了ArrayMap的实现原理。

  3. 《归纳AOP在Android开发中的几种常见用法》:在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的有力补充。玩好AOP对开发App是有很大的帮助的,本文详细介绍了AOP在Android开发中的常见用法。

  4. 《混淆的另一重境界》:众所周知,我们开混淆打包后生成的apk里,Activity、自定义View、Service等出现在xml里的相关Java类默认都会被keep住,那么这对于app的保护是不足够好的,Mess就是来解决这个问题,把即使出现在xml文件中的Java类照样混淆。本文详细介绍了Mess的使用方法。

  5. 《Android教你一步步搭建MVP+Retrofit+RxJava网络请求框架》:MVP(Model View Presenter)其实就是一种项目的整体框架,能让你的代码变得更加简洁,说起框架大家可能还会想到MVC、MVVM。Retrofit是一个类型安全的用于Android和Java网络请求的客户端,其实就是一个封装好的网络请求库。本文作者详细介绍了如何使用MVP+Retrofit+RXJava的技术方案来搭建Android基础开发框架。

开源项目

  1. LQRWeChat:本项目高仿微信6.3.31,使用网易云信SDK 3.2.0版本完成主要的聊天功能(单聊、群聊)、好友关系管理、群组管理等功能。重要的是,作者还是一名在校学生。

  2. ListenerMusicPlayer:一款优雅的遵循Material Design的开源音乐播放器,UI参考腾讯轻听音乐播放器,使用Lastfm Api与酷狗歌词Api。项目架构采用mvp-clean,基于Retrofit2 + Dagger2 + Rxjava + RxBus + Glide。

  3. SopCastComponent:这是一个由纯java编写的项目。整个项目完成了采集、视音频处理、编码、数据发送前处理、数据发送的功能。整个项目支持flv封包,rtmp上传,当然也向外面提供了封包和上传的相关接口。

  4. BadgeView:一个可以自由定制外观、支持拖拽消除的MaterialDesign风格Android BadgeView。

  5. CoordinatorTabLayout:CoordinatorTabLayout是一个自定义组合控件,可快速实现TabLayout与CoordinatorLayout相结合的样式继承至CoordinatorLayout,在该组件下面使用了CollapsingToolbarLayout包含TabLayout。


感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个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