极壹 + OpenWRT + tc/netem 搭建弱网环境

因业务需求,笔者需要搭建一个弱网环境,来测试设备在弱网环境下的表现。现在已有一些弱网模拟工具,微软有Network Emulator for Windows Toolkit(NEWT),Facebook有Augmented Traffic Control(ATC),这些方式要么是通过代理,要么就是只能实现wifi丢包,我们需要模拟网口的丢包,因此只能借助于开源的OpenWRT linux系统,调用其tc命令来控制流量,实现丢包、传输延时等。

阅读更多

想要亲手实现一个刷新控件,你只需要掌握这些知识

十一期间,大家都去玩耍了,笔者以前写的一个开源库收到了star,笔者非常高兴,心血来潮之下,决定重新搞一搞,耗费了三天的假期。笔者期望,这个刷新控件能像Google的SwipeRefreshLayout一样,支持大多数列表控件,另外还得有加载更多功能,最好要很方便的支持个性化吧。开源库在这,TwinklingRefreshLayout,如果喜欢请star,笔者的文章也是围绕着这个控件的实现来说的。

阅读更多

友书:我的Android项目搭建规范与技巧塑造之旅

作为一个自学Android开发3年的码农,笔者此前进行过很多项目的开发,想把标题叫做项目架构,好像不太符合当前的身份,要做架构还有很长的路要走。这篇文章就献给那些初出茅庐的Android开发者,或者那些有想法想要在Android的领地上大展身手的小团队吧。笔者曾经作为Android开发的负责人,带领小兵小将团队作战。劣质的代码规范,不仅影响团队的合作,还影响团队领导者的自信心,更重要的是还影响项目的后期维护和再次开发。今天就来捋一捋我摸索到的那些规范和技巧。

阅读更多

Android应用插件化原理与实现(待续)

插件化通常出于模块解耦、动态升级、65535方法数限制、并行开发、节省升级流量等方面的考虑,用户也可以定制的选择需要的模块。插件化指将一个程序划分为不同的部分,如app的主题样式,组件化指提取通用及复用性比较高的构建。目前开源的插件化框架有DynamicLoadApk(很好的解决了资源访问和activity生命周期管理的问题)、AndroidDynamicLoader(使用scheme,像浏览网页一样调用插件)、360 DroidPlugin。插件化的实现,还得从ClassLoader说起。

阅读更多

Android热补丁动态修复技术Hotfix

HotFix指可以以打补丁的方式动态修复紧急bug,而不用重新发布新版本的技术。继插件化之后,HotFix在2015年爆发,淘宝有Dexposed(需要使用xposed框架)、支付宝有AndFix(方法替换)、QQ空间有热补丁方案(从classloader加载dex的考虑)以及微信也有DexDiff(差分热补丁),Android Studio 2.0的Instant Run其实也是热补丁方案的体现。它让应用无需重新安装就可以完成更新、修复bug。

阅读更多