Android开发周刊 第四期

OPEN编辑 3年前
   <h2><strong>文章</strong></h2>    <p><a href="http://www.open-open.com/lib/view/open1462160888034.html">Android ContentProvider组件全面介绍</a></p>    <p>全面介绍下ContentProvider,从ContentProvider在框架中所充当的角色,到ContentResolver的使用,到URI的概念,再到数据共享的方法和权限管理,一步步的让大家对ContentProvider有个全面的认识。</p>    <p><a href="http://www.open-open.com/lib/view/open1462180508121.html">Android常见问题总结(一)</a> <a href="http://www.open-open.com/lib/view/open1462180624197.html">Android常见问题总结(二)</a> <a href="http://www.open-open.com/lib/view/open1462181057137.html">Android常见问题总结(三)</a></p>    <p>总结了一些Android开发过程中的常见问题。</p>    <p><a href="http://www.open-open.com/lib/view/open1462178584070.html">Android单元测试在蘑菇街支付金融部门的实践</a></p>    <p>介绍为什么蘑菇街支付金融这边会采用单元测试的实践。</p>    <p><a href="http://www.open-open.com/lib/view/open1460535667737.html">Android 单元测试: 首先,从是什么开始</a></p>    <p><a href="http://www.open-open.com/lib/view/open1462176882357.html">Android单元测试(二):再来谈谈为什么</a></p>    <p><a href="http://www.open-open.com/lib/view/open1462177214142.html">Android单元测试(三):JUnit单元测试框架的使用</a></p>    <p><a href="http://www.open-open.com/lib/view/open1462177583813.html">Android单元测试(四):Mock以及Mockito的使用</a></p>    <p>单元测试是为了测试某一个代码单元而写的测试代码。但是什么叫“一个代码单元”呢?是一个模块、还是一个类、还是一个方法(函数)呢?不同的人、不同的语言,都有不同的理解。一般的定义,尤其是是在OOP领域,是一个类的一个方法。在此,我们也这样理解:单元测试,是为了测试某一个类的某一个方法能否正常工作,而写的测试代码。</p>    <p><a href="http://www.open-open.com/lib/view/open1461481438522.html">解读 Android 官方 MVP 项目单元测试</a></p>    <p>Google在3月份推出了一个项目,用来介绍Android MVP架构的各种组合,可以认为是官方在这方面的最佳实践。令人称道的是除了MVP本身之外,这些工程配备了极其完善的单元测试用例,学习价值极高。本文着重针对todo-mvp的单元测试进行解读。</p>    <p><a href="http://www.open-open.com/lib/view/open1462200983733.html">Airbnb:我们的安卓客户端是如何使用 RxJava 的</a></p>    <p>我们都知道 移动开发是困难的。移动用户期望即时响应,而且还有在不同的线程间来回切换的需求。除了主线程,你还要做网络连接,同时你还需要在后台处理其他的各种不同的事情。最重要的是,你不能阻塞 UI 线程。RxJava 是解决这类问题的好方法,因为他能够使得线程间的切换比较容易。</p>    <p><a href="http://www.open-open.com/lib/view/open1462067974587.html">用工厂流水线的方式来理解 RxJava 的概念</a></p>    <p>为了理解 RxJava,我在脑海里举了不仅仅一个例子。例如我尝试观察动物园笼子的动物,尝试观察河流里的鱼,也尝试去观察蝙蝠侠里的犯罪(额,这不是现实生活中的,但不失为一个很好的例子)。但我还是认为工厂流水线是最好的例子。</p>    <p><a href="http://www.open-open.com/lib/view/open1461748167891.html">初识Agera(一)——基本概念和原理的介绍</a></p>    <p>近日Google开源了一个基于观察者模式的项目Agera:Reactive Programming for Android。还是菜鸟的我刚看完RxJava就发现Google开源了一个"类似"的项目自然得学习一下。本来结合自己的理解简单介绍一下Agera的基本概念和原理以便更好的使用Agera。</p>    <p><a href="http://www.open-open.com/lib/view/open1462154300125.html">Android Weekly #203 中文版</a></p>    <p><a href="http://www.open-open.com/lib/view/open1462260497163.html">仿QQ获取设备中APK并分享</a></p>    <p>前几天看到同事里有一个界面绚丽的应用,觉得有点意思,就让他把APK发给我,我想反编译看看里面的代码。结果,这哥们在手机里找了好一阵子,最后给我说:手机没有root,找不到APK文件在哪里。我再让他试试其他机子,结果都差不多:要不然找起来很麻烦,要不然根本都找不到。这时,测试的妹子说:手机QQ有这个功能。我打开手机QQ一看,果然有,平时都没有注意到啊。</p>    <p><a href="http://www.open-open.com/lib/view/open1462023717029.html">Android主题换肤 无缝切换</a></p>    <p>今天我要实现的一个换肤方案是基于github上的这个开源框架Android-Skin-Loader。这个框架的换肤机制是使用动态加载的机制去加载皮肤包里面的内容,无需Acitvity重启即可实现皮肤的实时更换,皮肤包是可以与原安装包相分离的,需要自己定做(这个皮肤包其实也就是一个普通的Android项目,只是只有资源文件没有类文件而已),这样做的好处就是可以在线提供皮肤包供用户去下载,也可以大大的减少安装包的体积,同时也很好的实现了插件化。</p>    <p><a href="http://www.open-open.com/lib/view/open1461911672668.html">Android 夜间模式初探</a></p>    <p>当下各种阅读类APP(如各种浏览器,某日头条等)都会有夜间模式,也顺应了大家的睡前必须玩一下手机的作息习惯。关于夜间模式的实现,有很多种方法。这篇日志学习一下最简单的实现方式,通过setTheme(int resid)方法实现主题切换来实现夜间模式,这也是Android官方推荐的方法。</p>    <h2><strong>库&代码</strong></h2>    <p><a href="/misc/goto?guid=4959671897350975143">Material design的BottomNavigationbar的开源实现</a></p>    <p><a href="/misc/goto?guid=4959672251968204671">OkHttp日志记录</a></p>    <p><a href="/misc/goto?guid=4959672252053586492">一个分享控件</a></p>    <p><a href="http://www.open-open.com/lib/view/open1462066808250.html">Depth-LIB-Android - 酷炫的Android特效</a></p>    <p><a href="/misc/goto?guid=4959672252151211902">什么样的loading动画,我会等!</a></p>    <p><a href="/misc/goto?guid=4959672252233231925">带阴影的布局</a></p>    <p><a href="/misc/goto?guid=4959672252318494375">一个简单的图表</a></p>    <p>本站原创,转载时保留以下信息:</p>    <p>本文转自:深度开源(open-open.com)</p>    <p>原文标题:<a href="http://www.open-open.com/lib/view/open1462322947666.html">Android开发周刊 第四期</a></p>    <p>原文地址:<a href="http://www.open-open.com/lib/view/open1462322947666.html">http://www.open-open.com/lib/view/open1462322947666.html</a></p>