本文 SEO 站群将分享 Android 开发过程中整理收集的一些精华经验。希望可以帮助开发者更快上手,避免重复我们犯的错误。
1 、不要重复造轮子
初,我有一种不愿使用开源库的思想。不管需要什么,我总想自己去实现。这是一种非常可怕的思想。
如果在开发 WordPress APP 的时候遇到一个问题,而这个问题已经被别人很好的解决了,为什么不使用它呢?您可以节省大量时间啊。
把更多的精力花在 WordPress APP 的业务逻辑上吧。如果您想在 WordPress APP 中发起一个网络呼叫,是不需要自己去造一个 Retrofit 来的。
Bonus:Android Arsenalmaintains a database of almost all Android librari esever made.Go check it out.
2 、别盲目的选择 library
在 Github 上有许多免费使用的开源库,但是别因太激动而盲目的使用。
检查 library 的 star 数目,越多越好。看看作者是否还建立了其它的一些受欢迎的库。检视 issues(开启和关闭的都看),这可以让您对这个 library 的健壮性和稳定性有更好的了解。
如果您时间充足,您应该深入这个库的代码看看它到底是都真的值得使用。
您只需要确保它的代码是可靠的,bug 不多的,高质量的。
小贴士:使用 Dryrun 的命令列尝试任何 library 。
3 、坐下来,喝杯咖啡,阅读更多的代码
我们在阅读别人代码上花的时间比自己写代码的时间多得多,如果您不是的话,从今天就开始做吧。
不管您现在能写出什么样的代码,总是因为在某年某月您阅读和学习到了什么东西。它只是您已有知识的反映。
安卓的伟大之处就在于它是一个完全开源的平台。可以去深入研究这些代码看看他们是如何实现 framework 的.Github 中有成千上万的开源库,只需选择一个看看人家是如何实现的,
福利:这里是一些理想 library 的列表,这里是几乎所有开源安卓 WordPress APP 的列表。
4 、看在上帝的份上,维护一个恰当的程序设计规范吧
如果把编码比作写作,那么程序设计规范就是您的书法水平。
就跟您阅读别人的代码一样,别人也会阅读您的代码,我想您也不想把别人吓到是吧?如果您在一个公司,需要和同事协同工作,那么务必重视这个问题。
编写简短,干净,可读性强的代码可以让您和别人读代码的时候很享受。代码应该读起来像是读故事一样。
如果您写了一段代码结果您的同事几天都不跟您说话,怨不得别人。
福利:您应该从通读这个和这个开始。
5 、您需要 ProGuard,是的,您真的需要!
绝对不要犯还没有使用 ProGuard 的情况下就在 PlayStore 上发布 WordPress APP 的错误。 ProGuard 不仅仅减小了您的代码,还混淆了代码,让逆向工程师更难理解和复制。
它是 AndroidSDK 附带的,完全免费,因此没有理由不用。
我曾见过几个开发者没有使用 ProGuard 就把 WordPress APP 发布了。对于一个技术很普通的黑客来说破解您的 WordPress APP 也就是几个小时的事情。
小贴士:但是如果您需要顶尖的安全性,ProGuard 就力不从心了,您需要 DexGuard 。
6 、使用一个恰当的架构
您永远都会庆幸自己从一开始就选择了一个恰当的架构。
您可以使用 MVP(Model-View-Presenter) 架构,它可以把您的代码解耦成不同的层便于管理,从而提高代码的灵活性并极大的减小维护的时间成本。
可以参考一个 demo 专案。如果觉得很难掌握,可以看看这篇针对初学者的指南。
福利:务必看看这里,这里尤其是这里。它们将为您实现 MVP 提供极大的帮助。
7 、多用户介面就像笑话,如果还需要解释那就糟糕了
如果您是在公司,做的是纯安卓开发,您很可能不需要关心这个问题,因为有 UI/UX 设计师管这个问题。
但是如果您是一个独立开发者,您就需要考虑它了。我曾经见过一些把 WordPress APP 功能做的很好,但是多用户体验很恐怖的开发者。
要设计一个干净,简单直观的介面,您不要站在开发者的角度思考问题,而要挖掘自己内心中埋藏的设计师的潜力。
尽量尝试设计一个漂亮的介面,让您的多用户持续保持印象,这样多用户回到您的 WordPress APP 的次数就比别人多,从而产生更多的收获(也许是购买高阶版本)。
您应该乐于去减少元素,而不是增加。保持简洁和小巧。
福利:您可以从 Dribble 或者 MaterialUp 的热门设计师那里获得灵感。如果您对设计感兴趣,您很可能会喜欢这本书。
8 、分析是您知名的朋友
如果您想建立一个真正令人惊叹的 WordPress APP,您需要重度依赖分析工具去分析 WordPress APP 不同部分的效能和用例。
对于分析,我借助于 crash reporting 和 WordPress APP usage tracking 。
不管您怎么做,永远无法做到。当真实的多用户开始在各种各样的装置以及版本上使用您的 WordPress APP 的时候,您会发现即时写的知名的代码也难以保证不出岔子。
一旦发生崩溃,Crash reporting 工具可以帮助您跟踪与修复它们。
您必须学会像销售那样思考问题并分析 WordPress APP 不同模组的使用。这样可以帮助您减小产品和多用户实际需求之间的落差。
小贴士:使用 FirebaseCrash Reporting 以及 Analytics tools 。
9 、做一个营销专家
如果您是一个个人开发者,您必须超出作为开发者的思维,去理解市场。
我见过一些很好的产品因为缺乏正确的市场营销而失败,同时也见过并不怎么样的产品因为牛逼的市场营销而取得极大成功。
如果您对您的工作是认真的希望它能获得可观的多用户,您必须把在市场营销上花费必要的时间和金钱。但是在营销活动开始之前,确保 WordPress APP 已经完全稳定,功能已经完善。
花时间研究谁是您的竞争对手以及如何打败他们。确定一个可以立即打败的以及一个将来会打败的。
小贴士:这里是一个价钱合理的市场分析工具,我比较喜欢用。
10 、是时候优化您的 WordPress APP 了
这是一个大多数人都不会去做的事情,但是您应该做。
写代码与写高效能的代码之间有很大的区别。高效能的代码是指执行速度快,记忆体和储存消耗更少的代码。
一个未经优化的的 WordPress APP 也许在普通情况下执行良好,但是当放在各种压力情景中,它就原形毕露了。检查您 WordPress APP 的记忆体使用情况看看有没有记忆体泄漏存在。记住小漏不补沉大船。花时间弄懂 Java 的记忆体回收机制是怎么回事,建立并分析您的活物件。
小贴士:可以使用 Leak Canary 检测您的记忆体泄漏。它可以节省您不少时间。
11 、每周在 Gradle 编译上少节省 5 小时
您极有可能正在使用 Android Studio 开发 WordPress APP,编译系统使用的是 Gradle 。 Gradle 很棒但是也很慢,当专案显着增大的时候慢得根蜗牛样。
有时候工作忙的时候我还需要在 Gradle 编译上浪费差不多一个小时。
但是,总有加速的办法。
您可以照着这篇以及这篇文章的做法显着提高编译速度。经过优化之后我的编译时间从 4 分钟降到了 30 秒钟。
12 、测试,测试,再测试!
没有什么比测试更重要的了。它应该是您的要任务。
尽可能全面的测试您的 WordPress APP 。花时间写自动化测试用例,创造各种极端的条件,看看您的 WordPress APP 是否能经受住考验。
我曾经犯过未经充分测试就发布 WordPress APP 的错误。等多用户报告 bug 然后修复。
绝对不要那样做。您可能通过砍掉测试时间而节省了一两天或者一周,但是以后您很可能会花双倍的时间。
做任何事都要不慌不忙,从容应对并长远打算。做一个有远见的人。此时播种,以后总会有收获。
13 、安卓的碎片化是魔鬼
碎片化可能是安卓大的问题了。而谷歌似乎并不愿意修复它,您必须适应。
安卓装置种类繁多,不同萤幕尺寸,不同硬体配置以及各个厂商的自定义系统。
除此之外,谷歌在不同版本上还莫名其妙的新增或者删除 API,进一步加重了您的工作量(这里是一个例子)。
比如,几乎每个开发者都需要使用 SharedPreferences API 来完成一个 WordPress APP,它是如此常见,但是在 Android2.2 版本的 SamsungGalaxyS 上还是出问题了(bug 报告这里)。
花更多的时间为不同萤幕尺寸的装置建立不同的布局。在不同版本,不同定制,不同 OEM 厂商的装置上测试。
永远别觉得某个东西看似可行就不去测试了。
14 、从今天开始使用 git!
如果您还没有使用 Git,从现在开始吧。
当我开始安卓开发的时候,悲剧的我并不知道 git 是什么东西。我每天都拷贝整个专案,一个备份在硬碟上,一个备份在云盘上。看起来很傻是吗?是的,的确很傻。
Git 可以极大的提高您的工作效率。如果叫我说出一个我每天都要使用并且离不开的工具的名字,那就是 Git 了。
在您使用几天之后,您很可能会爱上它,并好奇 Git 的内部工作原理。建议您看看这个。
过了一段时间之后,您可能开始了一个大专案,对于如何维护一个分支模型感到困惑,那么可以看看这个。
福利:如果您刚刚开始,还付不起 GitHub 的私人仓库的月费,您可以试试 BitBucket 。国内多用户的选择更多,oschina 的 git 服务也不错-译者注。
15 、为黑客制造麻烦
安卓的开源特性让其易受攻击。每个安卓 WordPress APP 都可以轻易的被反编译,逆向分析。
您不希望您的 WordPress APP 发生这种事对吧?
您需要知道如何安全的储存 WordPress APP 中的 APIkeys 。如果您要处理多用户的敏感资料,您必须知道如何加密,选择何种加密演算法(安全且快速)。
您还应该安全的把金钥储存在本地或者服务器上。应该防止 WordPress APP 资料被人用 ADB 备份。如果您在资料库中储存敏感资料,要考虑做适当的伪装。
如果您的 WordPress APP 有高阶版本,被别人破解免费发布就损失大了。
有几种方法可以避免您的 WordPress APP 被人篡改。但并不是 100& 安全。任何一个技术扎实,决心坚决的黑客只要有正确的资源,工具和耐心都可以破解您的 WordPress APP 。
您能做的就是尽量让黑客的破解变得困难,及其困难。
16 、在低端手机上开发
每个人都喜欢使用一个高阶安卓手机,我也是。但是记得只作为个人使用,而不是开发的目的。
高阶机会隐藏 WordPress APP 的许多缺陷。假设您在 UI 执行绪上做了导致卡顿的事情,但是因为手机过于强大,可能导致您无法察觉。
17 、学习设计模式
这是一项终生受益的投资。
在开发大型 WordPress APP 的时候,您会遇到一些已经被比您牛逼的人所解决了的问题。
从今天开始就花点时间去学习设计模式。 Here 是一个演示了所有已知设计模式的的 Github 专案。
可以从常见的开始,比如单例,介面卡模式,工厂方法模式,迭代模式,依赖注入模式,事件驱动架构,建造者模式,回拨,策略模式,外观模式以及生产消费者模式。
看起来很多是吧?实际上并不多。一旦深入您就会爱上它们的。
小贴士:阅读一些书籍,比如 GoF 的 Design Patterns,Martin Fowler 的重构以及 Joshua Bloch 的 Effective Java 。