开发者应该知道/解决什么以构建商业Android应用程序?[关闭]


21

Android和移动开发是令人兴奋的开发领域。由于这是一门新学科,因此,对于Android开发人员而言,在技能方面构建强大的商业应用程序会有什么期望?我以及我认为该技术的许多其他“新手”都想知道的问题是技术领域以及向必需的高级主题发展的过程,这些问题超出了Google提供的基本知识。有很多信息非常有用,但是没有按纪律或秩序分类。

更新:这样看。如果您是高级开发人员,并且需要让同一个同事在特定项目上使用Android加快运行速度(此问题您可以自行决定),您将怎么办?


所谓商业,是指“商业品质”还是“赚钱”,如果以后是指在该地区找到工作或为自己编写和销售应用程序,那是什么意思?
乔恩·霍普金斯

@乔 不排除任何这些领域。但是(我认为),有很多像我这样的开发人员想要将当前组织有效地扩展到设备上。因此,这实际上并不涉及“赚钱”或获得新工作,而只是将企业扩展为信息匮乏的高管/公路战士。
AngryITguy 2011年

我正在寻找的是来自Android资深开发人员的建议,他们“噢!您应该先阅读本内容,然后再阅读HTTP,或者阅读有关吸引人的界面设计,以及阅读2D / 3D ...”的内容。我已经更新了我的问题以反映这一点。
AngryITguy 2011年

Answers:


16

这个问题有几个方面:

从技术角度来看,回答“如何?”

有几种技术要掌握,再加上一些“不错”。

  1. 第一是JavaAndroid SDK基于所有应用程序均使用Java编写的假设。尽管可以说有一些新兴的第三方解决方案可以在.net中开发(请参阅monodroid),但毕竟底层操作系统是Linux。

  2. 第二个是日食。尽管在IntellijNetbeans 有很多第三方SDK,比ADT更好,但Google的工作目前仅集中在eclipse上。

编辑:自2016年1月起,Google正式支持Android Studio作为其官方IDE。

在android体系结构中,有一些构建基块,对于这些构建基块的一点点曝光将总是有帮助的:

  1. SQLite的

  2. 视频和音频流,编解码器的一般概念。对于OpenCore(android.media)。

  3. OpenGL绘图。

  4. 基于REST的Web服务,XML或JSON。

  5. 与用于本机代码开发的ARM体系结构有关的概念。

另外,在我的水晶碗中阅读时,Android开发人员还应该了解他们的Linux,并精通本国语言,这是Google挖沟Java并用go或其他可能在某处酝酿的其他东西代替Java的那一天(请参阅“ Native Client ”倡议)在浏览器域中)。Google已经使用标准JNI机制发布了针对c和C ++ 的NDK(本机开发套件),以补充Dalvik。

从商业角度来看,回答“什么?”。

当然,Android开发人员应该是Android用户。但是,不仅是标准手机用户,还有平板电脑用户。他们实际上应该采取乔布斯的态度-总是问自己:“我该如何用手机,平板电脑或尚未上市的消费电子设备做得更好?”。

有很多没有市场领导者的android应用程序,不一定与移动性相关(或通常无聊的“哪里是最近的披萨店?”应用程序)。以下是我个人无法避免的一些问题(直到我有更多时间;-)。

  1. 教孩子画画和阅读。

  2. 抽认卡学习外语。

  3. 英国FreeSat电视指南+遥控器。

  4. 您在这里(美食食谱...等)。


我喜欢您的回答,您能否提供一些用于SQLLite,Webservices / REST / JSON和OpenGL的链接?
AngryITguy 2011年

12

老实说,我认为您只需要Google并进行一些研究。

这是我发现的一些有趣的链接,它们可能是一个很好的起点。

除了您讨论的Google文档以外,还有许多其他内容。

希望这会让您开始,找到所需的详细信息!

祝好运


嗨,很抱歉,如果这很愚蠢,但我是新来的!为什么要对此一票否决?我问的原因是,我注意到没有其他人回答了这个问题,有时(无论如何,我认为)您只需要自己动手解决问题即可。以上就是我建议的一些基本出发点,那有什么问题呢?

+1以抵消负面影响。此外,它还提供了一些良好的链接:)
达伦·扬

@Darren Young-谢谢,但是我只是对为什么它会被否决感兴趣。因此,我可以更好地使用该网站,但始终欢迎+1!

@Digger。感谢您提供的信息。这是我已经设法找到的入门级产品。我希望更多的高级开发人员会/将继续采取这个答案。+1
AngryITguy 2011年

@giulio-谢谢,希望您能找到所需的信息。


3

我会看两件事。一是苹果公司开发应用程序的设计准则。我知道问题是关于Android应用程序的,但总体原则适用并让您以“应用程序”设计方式进行思考,这实际上与桌面应用程序设计观点大不相同。

我还要看一下Appcelerator Titanium,它是一个工具,可让您将javascript / web dev类型的环境中的代码移植到iPhone,iPad和Android上的本机代码中。我发现它是快速制作小型应用程序的有用方法。您可以下载“厨房水槽”示例,顾名思义,该示例演示了所有可用的本机功能。我将definitley建议将此作为开始的地方。


谢谢一直在看钛。我已经更新了问题,以帮助受访者提供我在寻找的答案。
AngryITguy 2011年

2

在具备所需编程语言的基本技能以及对SDK工具和库的了解之后,我经常发现新的移动开发人员缺少3件事(这不是火箭科学……据报道14岁的人们已经开发了应用)。

  1. 针对受限环境进行开发。CPU,内存,显示像素和可用电池电量在移动设备上的局限性更大。一些程序员从未暴露过快速而精巧的编程。当您拥有5kW的电源和可用散热的机架等时,您只是想不出解决问题的方法。重新学习一些旧手用来在48kB的1MHz CPU上编写出色游戏的技巧。记忆力之类的东西 也许在Arduino或其他微型控制器上练习编码。

  2. UI熟悉度。用户通常以与台式机系统不同的方式与其移动设备进行交互。随身携带一个。也许有几种型号。使用它们。使用大量的应用程序和评论(不是功能,而是评论),在光线昏暗,弹跳中的移动车辆等情况下,它们的易用性。读取并重新读取所有各种移动HIG。了解用户喜欢和不喜欢您要为其编码的特定UI平台。

  3. 怪异的熟悉度。一些工具和库是新的,并且具有“怪癖”。阅读开发者委员会,以获取问题和解决方案,以免您像其他成千上万的开发者一样犯错误。我在stackoverflow上看到太多有关如何执行硬件,API或应用程序分发模型甚至不允许的操作的问题。整个公司都在浪费时间,试图为iPhone App商店实现不可能。


有趣的是..您能提供涉及这些主题的网站的任何参考吗?
AngryITguy 2011年

1

我按照这种方式训练了我的低年级学生。

第1步:我要求他们在Android市场上看到一些免费的应用程序以及API演示,因为他们也可以抓住一些想法。(http://developer.android.com/resources/samples/ApiDemos/index.html)以及http://www.androidpeople.com/

实例:适用于Android的IBNLive应用程序因为他们看到这个应用程序后,可以大致了解到这些都是可能的,为什么我们不能选择/使用,设计,控件或功能之类的东西。

第2步:一旦他们有了希望,就可以通过查看现有应用程序来搜索Google以及充当Android圣经的Android开发人员指南,从而广为人知。

例如:我的下辈们有了一个想法,关于可扩展列表视图和推送通知,然后进行搜索,我们如何做这些事情,然后他们寻找推送通知,我们可以使用Cloud 2 Device Messaging,然后他们进行了研究并做到了以一种出色的方式。


0

要知道要做什么,为谁服务以及您是否有能力出售足够的东西,这比技术性(这是可以学习的,无论如何也不应该太难)更为重要。相对于iOS,最后一部分仍然是Android上的问题。

因此,在开始学习android开发之前,请清楚地了解您要实现的目标,如何实现以及它是否真正可持续。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.