前言
在过去十年的移动开发平台中,作为资深的移动开发人员,我们认为Android平台是一个新手最广为人知的平台。它不仅是一个廉价的工具,而且有着良好的 开发社区,以及从所周知的编程语言(Java),使得开发Android应用程序变得前所未有的简单。即便是这样,我们仍然看到不少Android开发新 手一遍又一遍地犯着同样的错误。以下是10个最常见的误区。
1、不读Android开发文档
Android开发者网站可以很好的帮助你。很多的文档也可以通过SDK工具下载。这些文档不仅仅是Javadoc API的参考,它包括许多指南、教程、视频、培训以及其他有用的资料来创建Android应用程序。
2、不熟悉Android开发工具
Android SDK不仅可以用来编译打包你的应用程序在Android手机上运行,而且它有一整套工具来帮助你构建应用程序。其中一些工具可以帮助你的应用程序设计图 形和布局。其他命令行工具,它们提供简单、可编写脚本访问模拟器和硬件设备的功能。还有一些可以帮助你进行性能的调优和剖析。
Android SDK文档中更多关于Android工具的信息。
3、不从Android开发社区寻求帮助
Android开发社区大型且友好。当你有问题时,Android SDK文档不会回答你,我们建议你去StackOverflow.com,它有一个 Android开发特定标签。其他有用的资源包括 谷歌邮件列表以及网站教程,比如你会发现在 Android软件开发中心。
4、由于Java语言开发而变得懒惰
Java是一个高级编程语言,它具有虚拟机,使得开发更加简单,但是,这并不意味着你可以是一个懒惰的程序员。标准的编程准则仍然适用。大多数 Android设备与传统计算机相比,处理能力和本地存储容量都有限,所以效率不高或不正确的编程实践会对的整体性能和用户体验有着更大的影响。
5、认为开发移动项目是小成本投入
小屏幕 != 小项目。许多新手开发人员(不幸的是,他们的老板)是一个错误的想法,认为所有移动开发项目可以由一个大学生在周末完成。(是的,我们听过许多这样的故 事。)然而,事实是,大多数成功的项目都需要像传统软件的功能规范、进度表、bug追踪、专职的工程师、专业的设计师、QA测试人员和发布维护计划。
6、使用原始Android应用程序为开发基础
很多时候,我们看到了一个应用程序是基于一个hello world示例代码的。没有事先计划或是设计就在代码中使用,并且该项目文件的布局也丢失了。最终用户的体验,似乎是一个事后的想法。
首先,你得花时间学习和试验Android平台。然后,坐下来与你的团队,想想你们真正想要构建的,并从头开始。最终,你将会节省时间、减少挫折,并且有高质量的生产代码便于日后的维护。
7、与操作系统整合
Android平台为开发者提供了许多功能,并紧密地集成系统和其他应用程序到他们的应用程序中。利用主屏幕小部件、内容提供商、意图处理,以及其他等功 能优势。确保你的的应用程序可以处理任何内容类型出现在共享菜单。使用这些平台特点可以把你的应用从一般的移动体验中区分出来。另外,如果你的应用更容易 访问,那么用户将更为频繁的看到你的应用程序。
8、定义应用程序的详细配置不当
Android Manifest文件是应用程序配置的中心位置,但这些信息经常(甚至在发布了的应用上)都不正确。许多开发人员没有正确地指定他们所支持的设备特征。另 一个常见的错误在Android Manifest文件中注册了不必要的权限。这样可能导致你的应用程序发表在Android市场后,用户对你的应用的评级很低。
9、为Android开发iPhone应用
当你下载一个很Cool的应用到你崭新的Android设备上时,但它的外观和行为完全像是一个典型的iOS应用。Not Cool。Android平台有着自己的外观和行为,用户不期望他们买的Android设备装的应用像别的平台的。这些相同的应用程序经常失踪的小部件、 内容提供商和其他独特的功能的Android(见#7),这使得他们更显得格格不入。
10、应用程序发表之后不维护
你有没有注意到许多应用程序并不会更新,而其他的则是不断更新?为了保持应用的相关热度,开发人员必须保持应用程序的更新。Android平台仍然在稳步 成熟,注意Android市场的通知,它经常需要开发者更新调整。如果没有更新,一些应用程序可能会被排在后面。请确保你的应用程序并不是其中之一。
Android新手小心
避免犯错误的最好办法就是要第一时候意识到这样做的危险。在这里,我们从Android开发新手身上列出了10个最常见的错误。请认真审视它们,这将会让你和你的团队避免这些阴险陷阱的。
Android新手如何进阶学习
3.1 选择一个细分领域
Android现在细分的领域非常多,前面说到的有应用开发、逆向安全、音视频、车联网、物联网、手机开发、SDK开发和智能电视盒子开发等等,在这些领域中选择一个并不断深入。比如音视频,在8年前我刚入门Android时,音视频就是闷声发大财了(PC端),工资高的令人乍舌,现在在移动端,音视频更是青出于蓝,是一个非常好的选择,如果想要入门可以看看何俊林《Android音视频开发》。
3.2 尽量学习半衰期长的知识
知识半衰期指的是:随着知识更新周期变短,知识裂变速度加快,一个知识落伍的周期。知识半衰期长的职业都是越老越值钱的,比如英语老师和外科医生,知识更新慢并且几乎不会落伍。这一点我们程序员是绝对比不了的,我们的大部分知识半衰期是比较短的,一个框架短短几年可能就会被淘汰,这也导致程序员需要不断的学习新知识,而我们每个人的时间和精力是有限的,那么根据知识半衰期,有策略的进行学习就变得尤为重要。
上面的半衰期图不完全准确,但是却值得参考,如果你是其他的技术领域也可以参考这个半衰期图。这个图不是告诉我们不要去学RN和小程序,而是结合自身工作尽量学习半衰期长的知识。
3.3 做减法,尽量专精一门技术
现在的社会,技术分工越来越细,越细就意味着大部分企业(小作坊除外)需要专精的人才(最好是精通一门通多门)。你会发现身边脱颖而出的技术人大多都是靠一门技术,却很少看到会一堆技术却都不精通的冒出来。好比在武侠的世界,高手对决都在同一个时间段拿出看家武学,如果看家武学都不精,分分钟被虐,剩下的武学也无需拿出来献丑了。联想到现实版本就是去大公司面试Android,结果Android技术了解不深,被各种虐,剩下的前端技术、后端技术、python什么的,面试官也没兴趣了解了。 所以并不是你会的技术越多越好,一定要做好减法,先专精一门,然后再去学别的技术。