助力软件开发企业降本增效 PHP / java源码系统,只需一次付费,代码终身使用! 广告
对一般应用程式的开发人员来说,开发Android应用程式的规模好像会比较小一些,在了解基本的设计方式以后,通常是采用边写边想的方式,过程中遇到问题了,查查文件或搜寻一下,解决问题以后,经过几次这样的循环,一个Android应用程式就诞生了。 一般Android应用程式的架构,通常不会比企业应用程式专案复杂,如果你已经具备其它应用程式的开发经验,应该可以把它套用到开发Android应用程式,不过前题是你千万不要“小”看它,虽然它真的是比较小一些。如果你还没有任何开发应用程式的经验,养成一个比较好的开发方式与习惯,应该可以节省很多开发与测试的时间。 第一堂的最后一个部份,介绍开发一般Android应用程式的准备工作,在了解这些内容以后,就可以在第二堂正式进入开发应用程式专案的阶段。 ## 4-1 Android应用程式专案资讯 Android提供一个方便与容易的开发环境,可以让你尽情发挥所有的创意,不论是想要开发一个自己使用的应用程式,或是想要上传到Google Play分享给全世界广大的使用者,对开发人员来说,Android可以带来完全不一样的体验与乐趣。 在前面介绍的内容中,Android已经是一个有一点历史的平台,在版本进化的过程,不断的加入各种最新的功能与支援,跟其它应用程式开发技术一样,Android也会有版本的问题,例如在Android 4.0(API Level 14)加入一种比较好看的开关画面元件Switch,如果你在应用程式使用它,这个应用程式就不可以在Android 4.0之前的装置中执行。 如果你有开发一个Android应用程式的想法,或是接到一个开发应用程式的任务,第一件事应该要先决定好一些关于这个专案的基本资料。 ### 4-1-1 决定应用程式可以运作的版本 如果你想要为自己开发一个Android应用程式,它只会安装在你的手机或平板电脑中执行,那就会容易多了。先进入装置的设定功能,在“关于手机”里面查询Android的版本,就可以决定应用程式需要设定的版本。例如你的装置是目前最多的Android 4.4(API Level 19),为开发环境下载与安装这个版本的SDK Platform,建立专案的时候也把应用程式的版本设定为API Level 19,设计好的应用程式就可以正确的在你的装置中执行。 如果你想要把写好的应用程式上传到Google Play,让所有人都可以下载与使用,在这样的情况下,就应该要到这个网址[http://developer.android.com/about/dashboards/](http://developer.android.com/about/dashboards/),看看目前Android装置的版本统计情况,把应用程式设定为涵盖最多使用者的版本。例如目前Android 2.X还有7.8%,Android 4.x有90.6%,如果你不想放弃7.8%的使用者,就应该把应用程式的最低版本设定为API Level 8或10,你的开发环境也要下载与安装这些版本的SDK Platform。 了解这些内容以后,把应用程式的版本资讯写下来,建立应用程式专案的时候就会用到了。 ### 4-1-2 决定应用程式需要的设备 Android装置最大的特色就是“太多了”,真的是太多了,这也是你要面对的挑战与选择。因为Android是一个开放的作业系统,所以厂商可以制造各种硬件规格的行动装置,光是萤幕的尺寸与分辨率就有非常大的差异。如果你想要写一般的应用程式,例如购物清单,就不用太在意硬件的规格。不过如果想要设计一个游戏,就应该要留意萤幕的尺寸与分辨率与Open GL的版本。这些统计的资讯也可以在[http://developer.android.com/about/dashboards/](http://developer.android.com/about/dashboards/)查询。 根据应用程式的类型,你应该决定它需要哪一些硬件设备才可以正确的运作,例如应用程式需要储存卫星定位提供的座标资讯,应用程式就一定要在具备GPS设备的装置才可以运作。如果应用程式需要使用像机拍照与储存照片,或是读取装置的方位资讯,应用程式就须要加入这些硬件设备需求的设定。 想好应用程式画面需要的萤幕尺寸与分辨率,还有需要哪一些硬件设备,例如像机、GPS与网络,在建立应用程式专案以后,都需要执行相关的设定。 ### 4-1-3 为什么要做这些工作? 如果是为自己或特定的使用者开发应用程式,行动装置的版本与规格就很清楚,通常不会有什么问题。如果想开发上传到Google Play的应用程式,它面对的就是广大的使用者,以Android版本的设定来说,一个最低版本设定为Android 4.0(API Level 14)的应用程式,装置的系统还是Android 2.2的使用者,在Google Play中就无法看到你的应用程式。 如果应用程式需要最低的萤幕尺寸与分辨率,才可以正确显示应用程式的画面,例如游戏类的应用程式比较有这类的限制。如果设计好的应用程式,没有针对萤幕尺寸与分辨率执行设定的话,没有符合最低标准的装置也可以下载与安装,可是执行应用程式以后,画面的显示就会发生问题,例如有部份的画面无法显示。如果使用者遇到这样的情况,那这个应用程式的评分就会很差了。 这些重要的设定,在开发环境建立应用程式的时候,可以设定Android平台的版本。在Android应用程式设定档“AndroidManifest.xml”,可以设定应用程式需要的硬件设备资讯。 ## 4-2 规划你的应用程式 在你的手机或平板电脑里面,可能安装了一大堆应用程式,有社群、游戏、新闻与其它各种生活应用。一般的应用程式通常会有几个画面,提供资讯的显示和使用者的操作。根据每一个画面的用途,会使用一些画面元件,复杂一点的画面可能会有很多显示资料、输入和选择元件,在开发应用程式之前,如果可以先想好需要的画面、元件和操作功能,设计的过程就会比较顺利一些。 ### 4-2-1 应用程式需要的Activity元件 Android提供一个方便与容易的设计架构,一般应用程式需要一个画面,就需要撰写一个“Activity”元件,它也是Android应用程式最基本与常用的元件。使用者启动一个应用程式以后,第一个出现的画面就是一个Activity元件,通常会称为应用程式的主元件。随着使用者的操作,应用程式会启动其它Activity元件,在画面上显示不的画面让使用者查询资料与执行操作。 一个复杂一点的应用程式,可能包含十几个Activity元件,在开发应用程式之前,就算只是在纸上用笔画一些简单的图型,也应该先规划一下应用程式需要哪些Activity元件。这时候通常可以依照Activity元件的功能决定它的名称,例如新增资料的元件可以叫作“AddDataActivity”。根据应用程式需要的功能,可以简单的画一个类似这样的图型: [![AndroidTutorial5_01_04_01](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_01-300x197.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_01.png) ### 4-2-2 设计应用程式与使用者的互动 目前的行动装置大部份都具备触控萤幕的设备,应用程式在提供使用者互动功能的时候,应该以触控萤幕的操作为主。应用程式应该要提供使用者简单与流畅的操作方式,而且要尽可能让使用者使用最少的操作次数,就可以完成应用程式提供的功能。在Android开发人员网站,提供一些基本触控萤幕的操作说明,由左到右依照顺序是“触控”、“快速触控两次”、“长按”和“触控后滑动”: [![AndroidTutorial5_01_04_02](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_02-300x139.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_02.png) 在完成应用程式的画面设计以后,接下来就可以开始规划应用程式与使用者的互动。一个比较简单的操作可以使用这样的图型来表示: [![AndroidTutorial5_01_04_03](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_03-300x261.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_03.png) 想想应用程式所有Activity元件提供的操作功能,尽可能在图型中呈现出来,你也可以检视这些操作的流程是不是简单又流畅。例如这个图型表示三个Activity元件之间的关系与互动: [![AndroidTutorial5_01_04_04](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_04-300x183.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_04.png) ### 4-2-3 设计应用程式的画面 Android平台提供非常多各种应用的画面元件,可以很容易让你组合成应用程式需要的画面,这些画面元件主要在Android API的“android.widget”套件。如果你还没有接触过Android应用程式开发技术,就还不知道这个套件里面有哪些东西,不过你还是应该先规划好应用程式需要的画面,在决定画面元件的时候,可以先用简单的文字来表示。如果画面元件需要在程式码中使用,例如读取文字符件输入的内容,或是设定列表元件显示的资料,就可以先为它们取好元件的名称。 这个图型表示一个应用程式的画面,里面有一些显示文字、输入文字与按钮元件,输入文字与按钮元件都依照它们的功能取好名称: [![AndroidTutorial5_01_04_05](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_05-300x196.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_05.png) ## 4-3 设计应用程式需要的资源 Android应用程式的设计架构,在画面和资源的部份,有一种比较特别的设计方式。在一般的情况下,应用程式的一个画面,通常是由一个Activity类别和一个画面配置档组合而成的。Activity类别是一个继承自“android.app.Acitivty”的子类别,这个类别负责执行读取资料、提供互动功能这类工作。搭配使用的画面配置档是一个XML格式的文件,负责提供Activity元件使用的画面。这种把程式和画面设计分开来的作法,虽然好像比较麻烦一些,不过可以提供应用程式更大的灵活性。 Android应用程式还有一个很重要的设计方式,就是把应用程式使用的资源独立出来,画面配置档就是最明显的应用。应用程式通常会使用一些需要的资源,例如在画面上显示的文字与图示,还有播放的音效或影片,都会依照应用程式的需求一起放在专案的资源目录。 [![AndroidTutorial5_01_04_06](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_06-300x157.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_06.png) ### 4-3-1 应用程式需要的文字资源 一般的应用程式都需要在画面上显示一些文字的内容,这些文字可以直接写在程式码,或是设定在画面配置档里面,这是最直接而且简单的方式。不过这样的作法通常会在开发的过程发生问题,例如上传到Google Play上的应用程式,可以让全世界的使用者下载与安装,你的应用程式就要考虑到多国语言的问题。如果直接把文字内容写在程式里面,需要修改为多国语言应用程式的时候,就会变得非常麻烦了。 在规划好应用程式的画面以后,应该可以很容易整理出需要的文字资源,例如这个规划好的画面,针对文字资源的部份,先为它们取好资源的名称: [![AndroidTutorial5_01_04_07](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_07-300x255.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_07.png) 接下来你可以使用这样的方式,把所有应用程式需要的文字资源整理好,可能是一个列出所有文字资料的表格,或是简单的记录在文字档案。 ### 4-3-2 设计应用程式需要的图形资源 现在的行动装置应用程式,越来越注重画面的美观,应用程式通常会使用一些清楚又好看的图示,让应用程式的画面更美观。最明显的例子就是两个功能类似的应用程式,其中一个的画面只有文字与简单的线条,另一个的画面使用图示代替文字,而且也为画面设定一些颜色与效果。虽然提供的功能是一样的,不过大家应该都会比较喜欢好看的那一个。例如这两个应用程式的画面: [![AndroidTutorial5_01_04_08](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_08-300x245.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_08.png) 虽然希望可以在应用程式尽量使用一些好看的图示,不过对应用程式开发人员来说,绘图与设定颜色可能比写程式更难一些,我自己就是最好的例子。网络上有很多可以利用的资源,提供许多套装的图示,使用在应用程式的时候也不用担心风格不统一的问题。例如这个网站就有很多图示资源,不过要特别注意使用授权的声明: [http://www.smashingmagazine.com/tag/icons/](http://www.smashingmagazine.com/tag/icons/) 对我来说,图示的问题解决以后,还有一个最大的问题就是“颜色”。设计应用程式的时候,画面默认的底色都是黑色或白色,就算使用一些图示加强画面的美观,单调的底色还是让画面不够好看。我觉得颜色搭配是一门很高深的学问,为了开发Android应用程式再开始学习,好像也来不及了。不过至少可以参考Android开发人员网站提供的一些建议: [https://developer.android.com/design/style/color.html](https://developer.android.com/design/style/color.html) 如果觉得Android开发人员网站的资讯还不够用,可以试试下面这个网站,它可以让你自由选择与搭配颜色: [https://kuler.adobe.com/create/color-wheel/](https://kuler.adobe.com/create/color-wheel/) ## 4-4 建立Android模拟装置 开发Android应用程式的作法,通常会希望先在Android模拟装置中执行测试,因为硬件设备的因素(例如震动效果),才一定要在实体装置中测试。你可以下载与安装各种平台版本的Android模拟装置,而且可以选择移动电话或平板电脑。大部份的Android应用程式在模拟装置执行完整的测试以后,最后再安装到实体装置测试就可以了。 接下来说明在Android Studio建立与管理Android模拟装置的作法。启动Android Studio,开启任何一个应用程式,在应用程式画面选择“Tools -> Android -> AVD Manager”启动AVD Manager,选择“Create Virtual Device…”准备建立一个新的模拟装置: [![AndroidTutorial5_01_04_09](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_09-300x170.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_09.png) 在Category选择“Phone”,装置选择“Nexus 5”,选择“Next”: [![AndroidTutorial5_01_04_10](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_10-300x167.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_10.png) 画面会列出所有可以选择的Android平台版本,在名称后面如果没有“Download”,表示已经下载与安装,例如画面上的“Lollipop”。名称后面显示“Download”,表示还没有下载与安装: [![AndroidTutorial5_01_04_11](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_11-300x167.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_11.png) 往下卷动,找到“Jelly Bean – 16 – x86 – Android SDK Platform 4.1.1”,选择Jelly Bean后面的“Download”,准备下载与安装这个版本: [![AndroidTutorial5_01_04_12](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_12-300x167.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_12.png) 选择“Android SDK License”后,选择“Accept”同意版权声明。选择“Next”: [![AndroidTutorial5_01_04_13](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_13-300x173.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_13.png) 开始下载与安装选择的版本: [![AndroidTutorial5_01_04_14](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_14-300x173.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_14.png) 下载与安装完成后选择“Finish”: [![AndroidTutorial5_01_04_15](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_15-300x173.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_15.png) 选择刚才下载的版本,名称后面已经没有Download,选择“Next”: [![AndroidTutorial5_01_04_16](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_16-300x167.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_16.png) 勾选“Use Host GPU”后选择“Show Advanced Settings”: [![AndroidTutorial5_01_04_17](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_17-300x167.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_17.png) 如果你的电脑有连接的WebCam,在Camera的设定都选择“Webcam0”,如果没有的话选择“Emulated”。勾选“Enable keyboard input”选项,可以让你在模拟装置使用电脑键盘输入。最后选择“Finish”: [![AndroidTutorial5_01_04_18](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_18-300x167.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_18.png) 回到AVD Manager视窗以后,就可以看到建立好的模拟装置。选择“OK”关闭AVD Manager: [![AndroidTutorial5_01_04_19](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_19-300x170.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_19.png) 你可以使用上面说明的作法,建立其它版本的模拟装置,这样就可以在不同版本的装置测试应用程式。在应用程式画面选择“Run -> Run 'app'”执行应用程式,如果要在模拟装置中执行应用程式,在选择装置的视窗选择“Launch emulator”后,可以在Android virtual device选择建立好的模拟装置: [![AndroidTutorial5_01_04_20](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_20-300x263.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_20.png) 如果要在实体装置中执行应用程式,安装好实体装置的驱动程式并连接到电脑以后,在选择装置的视窗选择“Choose a running device”,就可以选择已经连接的实体装置。如果在执行应用程式的时候,已经启动的模拟装置也会在这里显示: [![AndroidTutorial5_01_04_21](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_21-300x263.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_01_04_21.png) 完成开发Android应用程式前的准备工作了,后面的内容会使用一个实际的应用程式,开始进入应用程式专案开发的阶段。