译者:猿妹
程从媒体上翻译过来
原文英文:https://blog。arit raroy . in/what-my-2-year-of-Android-development-you-god-the-hod-way-52b 495 ba 5c 51
我还记得2014年我决定开始Android开发的那一天,那是我一生中最明智的决定之一。到现在已经两年半了,在Android开发中我学到了很多东西。当初我没有导师,也没有人指导我学习Android开发。在这个过程中,犯了很多错误,导致花了很多时间来纠正这些错误。
一年半后,我有幸与一些真正有才华、有经验的安卓开发者合作,他们指导我,帮助我以更好的方式做事。虽然这两个阶段很难,但是我学到了很多。学会做什么,最重要的是不做什么。
在这篇文章中,我将分享我近年来收集的一些宝贵经验。也许可以帮助你更快的学习Android开发,避免我之前走过的弯路:
1.不要反复做轮子
起初,我不喜欢使用开源库。无论我需要什么,我只想自己做。现在想来,真的很蠢。
当你在开发过程中遇到问题,如果这个问题已经被别人解决了,为什么不用呢?这样可以给自己节省很多时间。
多关注应用的核心业务逻辑。如果想在应用中进行网络调用,不需要自己编写,可以使用开源库。
2.明智地选择开源库
Github有很多开源库可以免费使用,但不要盲目使用。
检查开源库中星号的数量,越多越好。看看这个开源库的作者是否创建了其他流行的开源库。查看Bug问题的解决方案(打开和关闭),可以帮助你更好的理解库的稳定性和健壮性。
如果你有足够的时间,你应该彻底理解开源库的代码,并检查它是否真的适用于你自己的项目。
这只是为了确保您将使用的代码是可靠的、无错误的和高质量的。
建议:试着使用Dryrun直接从命令行使用任何库。
3.阅读更多代码
我们大部分时间都在读别人的代码,而不是自己写代码。如果你还没有做到这一点,让我们从今天开始。
你今天能写出的任何代码,都只是因为你在某个地方读过并学到了某种技能,这反映出你已经获得了技能,所以你只能通过阅读和学习别人的代码来提升自己。
Android的一个优点是,它是一个完全开源的平台,所以你可以更多地了解代码以及如何实现框架。Github有数千个开源库。选择一个库,看看开发人员如何实现它。这对你会有很大的帮助。
4.保持适当的编码标准
如果把编码比作书写,编码标准就像你的笔迹。
就像你会读别人的代码一样,别人也会读你的代码。如果你在一家公司工作,需要和其他开发者合作,请特别注意这一点。
写简短、清晰、可读的代码,这样你和那些阅读你的代码的人就可以彻底地享受它。您的代码应该像故事一样阅读。
5.请使用ProGuard!
ProGuard不仅可以减少你的代码,还会使你的代码晦涩难懂,从而使得反编译变得更加困难,复制代码也更加困难。而且完全免费,自带Android SDK,没理由不用。
我见过一些开发人员在市场上发布他们的应用程序时没有ProGuard,所以一个不太熟练的黑客只需要几个小时就能破解这样的应用程序。
6.使用合适的项目架构
首先,你会庆幸自己选择了正确的架构。
您可以使用MVP(模型-视图-演示者)架构,它可以将代码解耦到不同的可管理层,从而提高代码的灵活性,大大减少维护时间。这里有一个很好的示范项目供你学习。如果你觉得很难学,这里有一个详细的初学者指南。
7.用户界面设计的用户界面考虑
如果你只是一个纯粹的安卓开发者,那么你不需要太担心这个,因为有UI/UX设计师来做这个。
但是如果你是独立开发者,就需要考虑UI了。我见过很多开发者开发了很多很好的应用,功能很好,但是UI看起来很丑,让开发者很不爽。
设计一个干净、简洁、美观的界面,容易吸引眼球。而不是像开发人员一样思考,你应该专注于点燃藏在你心里的设计师。
试着设计一个漂亮的UI,给你的用户留下持久的印象,让他们比别人更频繁的回到你的应用中,产生更多的转换(也许买你的高级版本)。
您应该从设计中删除元素,做减法而不是添加元素,并保持简单和最小化。
8.分析是你最好的朋友
如果您想开发一个流行的应用程序,您需要非常依赖分析工具来分析应用程序不同部分的性能和使用情况。分析和跟踪故障报告和应用程序使用情况。
不管你做什么,你可能永远不会完美。当用户开始使用您的应用程序时,您可以使用分析工具来跟踪用户使用情况。
崩溃报告工具可以帮助您跟踪和修复它们。
你还需要像营销人员一样思考,分析应用程序不同模块的使用情况,这将有助于你缩小应用程序与用户需求之间的差距。
建议:使用火灾事故报告和分析工具(https://firebase.google.com/)
9.成为营销人员
如果你是一个独立的开发者,一定要超越“只是一个开发者”的想法,懂得营销。我看到一些好的产品因为缺乏适当的营销而失败,而那些不太好的产品因为营销而取得了巨大的成功。
如果你想吸引大量用户,你需要投入时间和金钱来营销和推广你的应用。但是在开始你的营销活动之前,请确保应用程序绝对稳定,所有功能都是完美的。你当然希望你花的每一分钱都能得到最大的推广效果,不是吗?
建议:推荐一个经济的市场分析工具,我很喜欢用。(https://sensortower.com/)
10.优化您的应用
这是我们大多数人通常不做的事情,但它确实需要做。
写代码和写高性能代码区别很大。你要写能快速运行,占用内存少,减少设备间存储空间空的代码。
一个未优化的APP在正常情况下运行良好,但在不同的压力条件下却能展现出真实的面目。
检查应用程序使用的内存量,并查找内存泄漏。请记住,一个小漏洞可能会使您的应用程序崩溃。花点时间了解垃圾收集器在Java中是如何工作的,创建堆转储和分析活动对象。
建议:使用leakcanary来检测你的内存泄漏。可以节省很多时间
11.使用Gradle每周至少节省5个小时
您可能正在使用Android Studio开发Android应用程序,并使用Gradle作为构建。Gradle不错,但是慢。当你的项目开始越来越大,比蜗牛还慢。
我记得我浪费了无数个小时,就这么坐着等着Gradle建好。每一个工作日,我都会很容易的浪费掉一个小时左右,如果用Gradle搭建的话,一周就浪费掉五个小时。但是,有办法加快速度。
根据这个和这个帖子,可以提高施工速度。优化后,施工时间从4分钟减少到不到30秒。(https://zero turnaround . com/rebellabas/making-grad le-builds-fast/)
12.测试,测试,再测试!
没有什么比测试更重要。这应该是你工作的第一要务。
尽可能彻底地测试您的应用程序,花时间编写自动测试用例,为应用程序创建各种压力环境,看看应用程序是否能支持它。
我曾经犯过一个错误,就是匆忙发布应用,没有花时间充分测试。最后用户使用的时候发现bug并上报,然后我修复。
永远不要低估考试。没有测试可能会节省你一两天甚至一周的时间,但是你可能需要花两倍的时间去解决一系列因为没有测试而导致的问题。
13.安卓碎片问题
碎片化是Android最大的问题之一。谷歌似乎不愿意修复它。你必须接受。
有各种各样的安卓设备,屏幕大小和硬件规格都不一样,来自不同的设备制造商,他们根据自己的设备定制操作系统。此外,谷歌各种安卓版本的添加/删除API功能并不能进一步增加工作量(这里举个例子)。
例如,没有一个安卓开发者在没有使用共享引用应用编程接口的情况下完成了一个应用。这个很常见,但在三星Galaxy S和Android 2.2中就坏了(此处报错)。
花更多时间为不同的屏幕尺寸创建不同的布局。在不同设备、不同版本、不同规格、不同原始设备制造商上测试。
14.请开始使用Git!
如果你还没用过Git,现在就开始用吧。
开始Android开发的时候,我还不知道Git是什么。我以前每天都要拷贝整个项目,硬盘上留一份备份,云盘上留一份备份。好像很蠢?确实如此。
Git可以显著提高开发效率。如果有人让我说一个我每天用的工具,我会说Git,Git,Git。
也许用了几天,你会爱上它,想知道g it是怎么工作的。一段时间后,你会自己开始一个大型项目,对于如何维护正确的分支模型很迷茫,可以在这里了解一下。(http://nvie.com/posts/a-successful-git-branching-model/)
15.使得黑客很难破解
Android的开源性质使其易受攻击。每个Android应用都可以反编译,逆向设计,轻松打开。
你不想你的应用出现这种情况吗?
您应该知道如何在应用程序中安全地存储API密钥。如果是处理用户敏感数据,一定要知道如何加密,可以选择什么算法(安全快速)。
您还应该将加密密钥安全地存储在服务器上或本地(如有必要)。应该使用ADB(Android调试桥)来防止应用程序数据备份。如果敏感数据存储在数据库中,请考虑将其混淆。
当你有一个免费破解和发布的高级版本的应用程序时,你可以做一些事情来防止应用程序被篡改。其实没有什么是百分百安全的。任何一个拥有丰富资源、工具和耐心的技术娴熟、意志坚定的黑客都可以破解你的应用。
建议:你可以看看这个,这可能是保护你的APP的一个好的开始(https://www。air air . com/Android/post/add-tamper-detection-to-your-Android-app)
16.低端设备开发
大家都喜欢用高端安卓智能手机,我也是,但是记住,这是个人专用,不是开发用。
高端设备在开发应用时隐藏了很多漏洞。假设你在UI线程中做了什么,导致了卡壳问题,但是在一个功能强大的设备上,你可能永远不会注意到这个问题。
一款老式低端设备被大量应用抛弃,成为开发设备的最佳选择。
17.投资学习和学习这是一生的投资
在开发大型复杂的应用程序时,会面临一些常见的问题,这些问题可能已经被别人解决了。你需要学习他们的解决方案。
从现在开始花些时间学习Java设计模式。这是一个Github项目
(https://github.com/iluwatar/java-design-patterns)展示了所有已知的设计模式。
然后学习一些最重要的单一案例,比如适配器、工厂方法、迭代器、依赖注入、事件驱动架构、构建器、回调、策略、外观和生产者-消费者。好像看起来很繁?不,一旦深入,你就会开始爱上他们。
18.毫不犹豫地回报
我们都得到了网络或者身边人的帮助。每当遇到问题,我们做的第一件事就是谷歌,从StackOverflow找到第一个链接。有的时候你很着急,最后复制粘贴了得票最高的答案。
甚至在GitHub上,免费开源库大大减少了你的开发时间和工作量,是因为有人创建了它,并贡献给了Github。
付出越多,得到的回报越多。我已经分享了我在Android开发的短暂旅程中学到的一些东西。我会继续多学习,多分享。希望能帮到一些人。
●此文章编号为210。以后想看这篇文章,直接输入210就可以了。
●输入m获取文章目录
推荐↓ⅵ
Java编程
更多推荐""
涵盖:程序生命、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、Android开发、iOS开发、C/C++、。NET、Linux、数据库、运维等。
1.《安卓开发 安卓开发人员必看的一些经验总结和忠告》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《安卓开发 安卓开发人员必看的一些经验总结和忠告》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1206046.html