但是,总有加速的办法。
你可以照着这篇以及这篇文章的做法显著提高编译速度。经过优化之后我的编译时间从4分钟降到了30秒钟。
12. 测试,测试,再测试!
没有什么比测试更重要的了。它应该是你的首要任务。
尽可能全面的测试你的app。花时间写自动化测试用例,创造各种极端的条件,看看你的app是否能经受住考验。
我曾经犯过未经充分测试就发布app的错误。等用户报告bug然后修复。
绝对不要那样做。你可能通过砍掉测试时间而节省了一两天或者一周,但是以后你很可能会花双倍的时间。
做任何事都要不慌不忙,从容应对并长远打算。做一个有远见的人。此时播种,以后总会有收获。
13. 安卓的碎片化是魔鬼
碎片化可能是安卓最大的问题了。而谷歌似乎并不愿意修复它,你必须适应。
安卓设备种类繁多,不同屏幕尺寸,不同硬件配置以及各个厂商的自定义系统。
除此之外,谷歌在不同版本上还莫名其妙的添加或者删除API,进一步加重了你的工作量。
比如,几乎每个开发者都需要使用SharedPreferences API来完成一个app,它是如此常见,但是在Android 2.2版本的Samsung Galaxy S 上还是出问题了。
花更多的时间为不同屏幕尺寸的设备创建不同的布局。在不同版本,不同定制,不同OEM厂商的设备上测试。
永远别觉得某个东西看似可行就不去测试了。
14. 从今天开始使用git!
如果你还没有使用Git,从现在开始吧。
当我开始安卓开发的时候,悲剧的我并不知道git是什么东西。我每天都拷贝整个项目,一个备份在硬盘上,一个备份在云盘上。看起来很傻是吗?是的,的确很傻。
Git可以极大的提高你的工作效率。如果叫我说出一个我每天都要使用并且离不开的工具的名字,那就是Git了。
在你使用几天之后,你很可能会爱上它,并好奇Git的内部工作原理。建议你看看这个。
过了一段时间之后,你可能开始了一个大项目,对于如何维护一个分支模型感到困惑,那么可以看看这个。
15. 为黑客制造麻烦
安卓的开源特性让其易受攻击。每个安卓app都可以轻易的被反编译,逆向分析。
你不希望你的app发生这种事对吧?
你需要知道如何安全的存储app中的API keys。如果你要处理用户的敏感数据,你必须知道如何加密,选择何种加密算法(安全且快速)。
你还应该安全的把密钥存储在本地或者服务器上。应该防止app数据被人用ADB备份。如果你在数据库中存储敏感数据,要考虑做适当的伪装。
如果你的app有高级版本,被别人破解免费发布就损失大了。
有几种方法可以避免你的app被人篡改。但并不是100%安全。任何一个技术扎实,决心坚决的黑客只要有正确的资源,工具和耐心都可以破解你的app。
你能做的就是尽量让黑客的破解变得困难,及其困难。
16. 在低端手机上开发
每个人都喜欢使用一个高端安卓手机,我也是。但是记得只作为个人使用,而不是开发的目的。
高端机会隐藏app的许多缺陷。假设你在UI线程上做了导致卡顿的事情,但是因为手机过于强大,可能导致你无法察觉。
17. 学习设计模式
这是一项终生受益的投资。
在开发大型app的时候,你会遇到一些已经被比你牛逼的人所解决了的问题。
从今天开始就花点时间去学习设计模式。Here是一个演示了所有已知设计模式的的Github项目。
可以从最常见的开始,比如单例,适配器模式,工厂方法模式,迭代模式,依赖注入模式,事件驱动架构,建造者模式,回调,策略模式,外观模式以及生产消费者模式。
看起来很多是吧?实际上并不多。一旦深入你就会爱上它们的。
18. 回馈
你得承认,我们都曾从别人和互联网那得到许多帮助。
每当你遇到问题的时候,你会做的第一件事就是谷歌,发现第一条来自StackOverflow的链接。有时候你很忙,结果直接拷贝粘贴得分最高的答案。
你有没有想过Github上那些开源库其实也是别人花时间创建然后贡献给社区的。
当你被一个难以理解的概念卡住或者遇到一个新的东西时,你发现一篇让你豁然开朗的博客,这个时候记住是某人牺牲了约炮时间而写了这篇文章。
所以也该你回馈了。给予的越多,得到的也就越多。
我们都忙于自己的工作,很难找到时间为别人做什么事情。但是尽量每周找点时间做点贡献让安卓社区更丰富。
我已经分享了自己短暂的安卓生涯中所学到的一些东西。我将继续下去,学更多,分享更多。希望能为别人的生活带来微小的帮助。
本文来源:不详 作者:佚名