给菜鸟看的Android应用开发全流程——好多Android开发中,没人告诉过你的事

很多菜鸟开始学习Android开发,去网上搜集过很多“Android开发教程”,但是搜索出来的东西,如果不是特别针对性的关键词,基本上内容都是:环境配置-工具安装-第一个Hello Android项目-项目结构、文件作用-布局-控件-……等等涉及具体开发内容的文章,最后打包发布了事;且不说这些文章又有一大半都是互相转载来转载去,单看内容,大部分都是讲具体功能实现手段,或者某个API 怎么用,然而很多细节可能虽然确实很简单,却往往令菜鸟迷惑头痛不已……唉,我当年不堪回首的岁月啊!虽然这些问题可能日后看来是小意思,但当初一个菜鸟可能根本不知道这个问题的存在,更不用说用什么词去搜索;所以虽然这些问题可能也是有专门文章讲,但菜鸟们根本不知道这个关键字啊 ~~~~

本人靠着一本书 + 网上各种搜,现在总算能完成一个完整的 Android 开发流程。回头看看,总结一下这些经验,即给自己加深印象,也帮助后来的菜鸟,也是功德无量啊 。

话说本人半路出家,编程水平实在一般,所以此文重点在流程,至于技术细节和各种实现功能的技巧,还是专门搜索专业的文章吧,不过想必彼时已经能够知道自己想要什么了,那些问题也就不算个事了。

该流程基本是本人的经验总结,未必是完全官方和教科书式的。不过虽然不一定是最好的解决办法,但起码都走得通,替后来人排除一些弯路。如果有幸被大牛看到此文,还请对不妥之处不吝赐教,哪怕路过留个名也好啊 ~

一、准备工作
1.
技能储备

1)
Java

重要程度:★★★★★
当然是掌握的越多越好,毕竟 Android 就是用 Java 语言来开发的。遇到很多没有 Java 基础的朋友问:要想直接学 Android , Java 应该掌握到什么程度?个人认为,如果一个熟练的 Java 程序员技能算 100 分的话,掌握到 40-50 分,基本开发 Android 不会有语言上的太大障碍了。其实主要也就是 Java 的类、继承、接口、 IO 、 XML 解析等这些基本的操作掌握了也就可以开始用 Android 开发些简单应用了。话说我一个朋友完全没有 Java 基础,直接上手开发 Android ,没几天也就能写出个应用,虽然他是个 C++ 和 C# 高手……编程这玩意很多东西都是相通的,基本的搞明白了,再学学 Java 特有的也就算入门了。不过还是强烈建议——掌握的越多越好

不过也不用摸不着头脑,太刻意去学,没目标抱着本《 Java 编程思想》学也不见得有多大效果。自己动手做个 Android 小应用,遇到问题了回头再针对性的去学 Java 。我这个半吊子也是这样,开发 Android 时,经常碰到一些 Java 比较基础的类的使用,但当时没弄明白,所以需要回头专门再看看。
2)
XML
重要程度:★★★★
Android 开发中很重要的一类文件,也是一种标记语言,与平台和编程语言无关,所以一般用来保存和传递各种数据、参数。在 Android 中,很多配置信息、数据存储,尤其是 Android 界面,要大量的和 xml 打交道。虽然很重要,但其实并不复杂,找些基本教程看看,明白 xml 结构和语法特点也就基本够用了。(这里顺便强烈推荐新手一个入门网站: http://www.w3school.com.cn/ ,简洁,全面,有力!没有多余的废话,页面干净无广告!……最主要我觉得有一定的权威性,作为 XML 等学习的入门网站和查询工具很有用)

3)
数据库
重要程度:★★★
Android 要保存数据,经常使用内置的 SQLite 数据库,可以使用 SQL 查询语言操作。所以如果有数据库使用经验,这个就简单多了。如果没接触过,就了解一些基本的 SQL 语句:增加、删除、修改、查询。

4)
Dos
重要程度:★★
这个,貌似也谈不上掌握了,会操作就行了,因为之前碰到几个哥们,确实连 cd , dir 等一点 dos 操作都不会用,这就稍微麻烦点了,因为无论一开始配置 java ,还是最后生成签名,当然还有很多场合会需要在 Dos 环境操作,虽然可能有部分操作已经有图像界面替代了,但还是稍微看看吧,起码很酷么 ~~

5)
Linux
重要程度:★
好像不应该是“重要程度”,应该是会使用程度吧。 Android 本身是基于 Linux 内核开发,说不重要可能会被拍唉。

主要就是会一些基本的 linux 命令, su,sh,cd 什么的,后期调试 Android 程序可能会用到,比如查看 SQLite 数据。也不用特意去学,需要的时候网上现找找,多用几次也就记住了。
2.
工具准备

1)
Eclipse

最强大的 Java 开发工具,安装 Android 开发插件后可以方便快速的开发和调试 Android 程序。

2)
Android SDK
Android 开发工具包,包括核心 API , AVD ( Android 虚拟设备)等,可以到 Android 官网下载。具体安装配置就不多写了,网上很多,我再引用这文章写成书了……
参考:http://android.tgbus.com/Android/tutorial/200812/171154.shtml

3)
Java SDK
Java 工具包,包括 JDK 和 JRE ,可到 Java 官网下载。
安装,配置环境变量。
参考:http://blog.csdn.net/huanghm88/article/details/3965218(很全,一般到path和classpath设置完就ok了)

4)
其他
FireWorks :用于编辑 png 图片, Android 中主要的图片格式。纯粹个人喜好,有其他图片编辑工具也行。
3.
文档资料

1)
一本纸质书

最好有本入门的纸质书,毕竟写的质量比较好的书能够尽量全部的涵盖 Android 开发各个方面,对新手很有帮助。
说下我当时看的吧:《深入浅出Google Android》,人民邮电出版的,不过很老了,09年的,还是基于Android API1.5。

2)
API文档
Java API , Android API ,重要的查询手册。不能上传附件,这个搜一下吧,很多。
二、开发

1.
建立项目

在 Eclipse 中新建一个 Android 项目,基本流程是:新建项目,选择 Android Project ,然后输入 package 名、应用名和 Activity 名,选择 Android Api 版本。

菜鸟提示: package ,包名,一般的命名规则是尽量独一无二,方便区分和管理,所以一般比较规范的命名都是公司域名的倒写,比如 google 的包, google 域名是 google.com ,所以包名是: com.google.*
2.
基本开发流程
1)
构思布局 ,用 xml 构建基本的布局和控件

2)
写java程序 ,实体化 xml 的布局、控件、实现业务逻辑。
菜鸟提示:很多控件既可以在 xml 文件中设定各种属性,也可以在 java 文件中设定属性;通常如果需要动态的改变某些属性,比如 setText() ,则需要在 java 中实现,这也是非常常用的,比如按下按键,按键颜色变深等等。

3)
运行,调试程序 :即可以使用 Android 模拟器调试,也可以通过数据线,直接接手机调试。提示:如果是用模拟器调试,调试后需要修改程序再次调试时,不需要关闭模拟器,直接再次运行就可以。

4)
美化、找图片:菜鸟提示 : Android 标准图标根据手机分辨率不同,分别有 36*36/48*48/72*72 这三种尺寸,你会看到 drawable-hdpi/drawable-ldpi/drawable-mdpi 不同的目录用来存储不同尺寸的图标,在 AndroidManifest.xml 中只需要写 @drawable/icon 就可以,它会根据屏幕分辨率去找不同目录下的图标。(参考: http://zl4393753.iteye.com/blog/1056785 )
5)
关于应用中的文字等引用资源 :重点说说文字吧,应用中比如菜单名字,标题等,既可以直接写在 java 文件中,也可先写在 res/values/strings.xml 文件里。不过呢,还是强烈建议,尽量都写在 strings.xml 文件里,这样以后要修改文字,直接改这个文件就行,否则在 java 程序里找可费了大劲了,尤其是要开发多语言版本的话,所有文字全部要改成外语,当然还是在 strings.xml 里写方便的多。养成个好习惯,不要嫌麻烦, Android 系统里专门弄这么个文件是有道理的。
6)
最后,切记切记
,修改 AndroidManifest.xml 文件,修改版本信息,加上需要的各种权限,如发送短信,访问网络等等,否则程序发布了,很多相关功能没法用。
三、打包发布
每次发布前都是最激动人心的时刻啊 ~ 然而这部分网上很少有专门讲的(也许我手拙没找到),针对这部分我还专门到开发论坛发布了很多帖子提问,时至今日,除了同样困扰的菜鸟帮顶,无人回答……鄙视一下。也正因如此,动了写这篇文章的念头,Android开发,很多东西简单,但是从没有人和你说过 ~
1.
加入广告

我们很多开发的应用,最终目的是发布到网上给大家用,如果顺便能有收入也是我们的一项劳动成果,虽然很多很惨淡(又是我不堪回首的过去啊)。
1)
选择广告平台 :常用的有 Google 的 AdMob ,国内的有:有米,微云等等,至于说哪个效果最好,众说纷纭,最好还是自己亲自试试。还有一种平台是各种广告平台的集成,能根据使用者优化,动态选择。但因为某些电子市场不允许这个,我就没用,也就暂时不点名了,想试试的,百度……(我没说是第一个哈 ~ )。

不过呢,最好固定一两个效果比较好的,因为很多平台要提款的话,必须达到一定额度,而且太分散的话,自己添加着也挺麻烦的。当然,如果这个平台效果公认的已经落后了,还是要毅然换平台的,毕竟不同的广告联盟广告主资源水平还是有差距。
2)

普遍有一个说法,如果是针对国外的应用,最好还是 Google的Admob ,针对英文环境能够提供的广告数量也多。不过本人没用过,不多说了。至于为什么没用,见下文。
3)
进入正题,如何给程序加入广告呢?通常步骤是:下载该平台的 sdk 包,把 jar 加入到你项目的 buildpath ,然后在主程序里加上调用广告的程序,再在界面中设置展示广告的位置,最后修改 AndroidManifest.xml 文件,加入广告涉及的程序、权限等。然后,欧了!
具体详细的安装方法,看广告平台提供的说明文档就行了,放心,一定会非常详细,一步一步教你,因为他们比你更希望你的应用中展示他们的广告。
2.
添加最终用户许可协议


类似 License 授权使用之类的,可能你已经在某些程序中见过,第一次启动,显示的那一大篇文字,却几乎不看,直接点“ Accept ”……具体添加步骤……网上还真没有几个讲这玩意的,要不说很多东西没人告诉你呢。我还是从书上看来的,好几页,也懒得抄了。话说,其实这东西主要就是保护你的知识产权的,也不知道是咱们缺少这意识,还是太简单没人写。
找了半天找到个老外写的: http://bees4honey.com/blog/tutorial/adding-eula-to-android-app/ ,差不多就是这个步骤。我也只用过一次,是在给摩托罗拉电子市场提交应用时,人家明确要求要有这个东西。到时候需要的话就参考一下,不想弄这个呢,也完全不影响你程序的正常使用。
3.
数字签名
:你开发的 Android 应用必须有签名才能安装。之前调试的时候,是 Android SDK 自动用默认的签名调试,发布的时候必须要重新生成一个签名;另外,同一个应用的不同版本,要使用同一个签名,这样安装程序的时候,才会自动升级,新版本代替旧版本。否则,不同的签名系统会认为是不同的应用,而且包名(之前的 package )必须不一样。具体签名过程,参考这里: http://www.cnblogs.com/feisky/archive/2010/01/17/1650076.html
还有这里:
http://lufengdie.iteye.com/blog/814660
其实这里连带打包都包括了。
4.
打包为可安装的apk文件
: Eclipse 中 , 右击需要签名的工程 -->android tools-->export signed application package...

出现对话框 , 选择需要签名的工程; next, 选择上面生成的 android.keystore 文件位置和设置的密码 ; next ;
next, 选择签名生成文件的位置和名称
finish, 搞定啦 ...
5.
发布你的应用程序

1)
首先,如果应用中有广告,应先上传到对应广告平台。审核通过后,你的广告才真正启用。

2)
发布到其他电子市场 。这一步其实可以和上一步同时进行。但一般为了防止你没测试到的错误或者其他原因,广告平台审核未通过,还需要再次修改,而且一般的广告平台 1~2 个工作日就可以审核完成,稍微等一下不误事。
广告审核通过后,就可以发布到各大电子市场啦!
以安卓市场为例,先要到这里注册开发者身份,然后提交你的应用,当然一般还要提交应用截图等信息,截图可以在模拟器上用电脑截图,也可以在手机上用截图软件截图(推荐个截图软件:ScreenCapture,http://bbs.hiapk.com/thread-737845-1-1.html下载)。
上传完,填好信息,就等着审核吧。审核通过了,正式上线,然后你就可以在安卓电子市场搜索到你的应用了 ~
其他的电子市场类似,我常用的有 :
http://www.eoemarket.com
http://www.goapk.com
http://www.hiapk.com
其他还有好多,木蚂蚁,爱米,机锋网等等。另外中国移动 MM 市场不允许广告,要注意一下。其他电信、联通也有自己的应用市场。
当然,还有个最重要的 Google 的 Android Market ,这个电子市场可是全球销售啊 ~ 不过因为你懂的原因,没有直接的中国大陆地区注册。要注册这里的开发者,必有有个支持美元的信用卡,而且需要 25 美元 / 每年(好像是)的注册费,注册地中国地区最近的只有香港,而且貌似有点麻烦,所以我也没去注册,有兴趣的试试。
其实直接把 apk 文件复制给别人就可以用了,只不过电子市场终究是传播最快的一种途径。如果有自己的博客、微博等等,也可以发个链接推广。
P.S.:多去论坛看看,多提问,还是会有很多同好回复的~多试验。再推荐两个常用网站:
http://stackoverflow.com/questions 一个老外的编程论坛,继承了老外事无巨细、不厌其烦解答的风格,基本你能想到的问题大部分都有
http://findicons.com/ 很棒的图标搜索网站,美化必备。

嗯,差不多就这些吧, the END. Happy Androiding~

转载于:https://my.oschina.net/haquanwen/blog/55245

菜鸟看的Android应用开发全流程相关推荐

  1. 智能门锁开发全流程分享

    本文分享自中移OneOS微信公众号<智能门锁开发全流程>,作者:小O. <<<Python是计算机中一门公认的简单并且容易学习的语言,它的语法简单友好,拥有丰富的库资源和 ...

  2. 一文解锁华为云新技能-AIOT开发全流程【设备接入-ESP端侧数据收集[MQTT]-实时数据分析】(步步截图较详细)

    一文解锁华为云新技能-AIOT开发全流程[设备接入-ESP端侧数据收集[MQTT]-实时数据分析](步步截图较详细) 在这篇你将会接触到:从物联网工程师从硬件层-通信层到应用层全流程:开发华为云最基本 ...

  3. 国内征信行业模型开发全流程详解

    1. 前言 目前国内的金融体系主要由银行.互联网消费金融.助贷机构组成,本人参与过国内外大型银行.消金.助贷机构的征信模型开发,相对而言,对当前国内的征信模型具有一定的发言权.下面,我将从技术角度全面 ...

  4. 深度学习大厂前端项目开发全流程全流程

    用户审美的要求越来越高,也就使得越来越多的公司和企业注重线上用户的体验,都想要向外界传达出众的气质形象和重要信息,所以,Web前端人员的需求也越来越大. 深度学习大厂项目开发全流程全流程 在国外企业, ...

  5. 次世代游戏美术资源开发全流程及常用的软件

    次世代游戏美术资源开发全流程案例 外国艺术家FlyCat用Blender完成的次世代悟空(胸像)全流程 外国艺术家FlyCat用Blender完成的次世代悟空(胸像)全流程 流程图

  6. RPD快速产品开发全流程详解

    一.什么是RPD? RPD定义-Rapid Product Development(快速产品开发): 借鉴了业界主流的产品开发流程:IPD.敏捷开发等: 结合企业当前软硬件开发实践,RPD是包括了思想 ...

  7. MindSpore框架TBE算子开发全流程

    本文为MindSpore框架TBE算子开发全流程的图文案例.         视频案例请移步MindsSpore框架TBE算子开发全流程 MindSpore框架TBE算子开发全流程 一.工具介绍 1. ...

  8. 【微信小程序开发全流程】篇章0:基于JavaScript开发的校园综合类微信小程序的概览

    基于JavaScript开发的校园综合类微信小程序的概览 本文仅供学习,未经同意请勿转载 一些说明:上述项目来源于笔者我本科大三阶段2020年电子设计课程项目,在这个项目中,我主要是负责的部分有前端, ...

  9. Android经典蓝牙开发全流程

    一.基本介绍   所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,最初是由爱立信公司公司发明的.技术始于爱立信公司 1994 方案,它是研究在移动电话和其他配件间进行低功耗.低成本无 ...

最新文章

  1. 北大燕博南:下一代AI芯片— 存内计算的硬核与软着陆 | 报告详解
  2. python语言程序设计2019版第二章课后答案-python语言程序设计基础(嵩天)第二章课后习题...
  3. JavaScript案例三:动态显示时间
  4. 幼儿课外活动游戏_幼儿园的户外活动游戏有哪些?
  5. 微软Expression Blend功能介绍
  6. clickhouse语句_篇四|ClickHouse的可视化界面与集群状态监控
  7. 利用matlab程序分别设计一正弦型信号_ARM Mbed数字信号处理
  8. 水平集与图割算法浅析
  9. java实现单链表常见操作
  10. Android 中的数据储存方案, 持久化技术
  11. js文件上传不用点击上传按钮自动上传
  12. 鼠标移上图标字体,让其旋转
  13. Orcle中Database Control - orcl打开错误或者打不开的解决办法
  14. Matlab——图形绘制——三维立体图形 剔透玲珑球 动态图——彗星状轨迹图
  15. 上下文无关文法的分析树(Context-Free Grammar, CFG)的分析树--编译原理
  16. NOIP提高组1890~1900集合答案(之前的文章标题错了,应该是1820开始的,不是1520开始的)
  17. CAD.net cad中的菜单创建
  18. 微机原理——8086中断类型以及中断向量表、中断响应、中断返回
  19. 简单几行命令让pip升级
  20. 安卓开发报错:“unfortunately,sy6 has stopped”

热门文章

  1. compressing 压缩和解压缩文件和文件夹
  2. CreateProcess失败返回错误代码998
  3. 人机博弈-吃子棋游戏(三)走法生成
  4. python的变量名命名规则_python的变量命名规范
  5. arduino 与java通信_ardunio+esp8266与javaSocket网络通信(好)
  6. 施密特正交化及QR分解(附实现代码)
  7. 电 脑 计 算 减 法 的 步 骤
  8. MSP430程序库三12864液晶程序库
  9. tcp accept函数
  10. 按键控制led灯亮灭c语言原理,4个独立按键控制4个LED亮灭的单片机程序问题