`
yzd
  • 浏览: 1813294 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android入门开发经验

 
阅读更多

在手机上运行自己写的程序是一件振奋人心的事。之前就对Android印像不错,漂亮的UI,可爱的机器人,并且充满发展的活力,无论是平台本身,还是周边软件。刚好看到身边有同学在搞Android开发,而且本身自己又是读软件工程的,不由得跃跃欲试。期末备考的时候忍不住花了一下午的时间把开发平台搭起来,然后又在当当订了一本Android开发的书。准备考完试便开始尝试Android开发。

万事开头难。所以我把自己的开发过程的经验和笔记整理一下,希望能给有兴趣入门Android开发的人提供一些帮助。

常见缩略词

首先,先介绍一下Android开发常见的一些缩略词,这些词在以后的开发过程中相当常见,跟基本常识一样,但初学者就不一定清楚了,可以先简单看一下,记不清的时候再到这里查找。

AVD Android Virtual Devices
ADT Android Development Toolkit
Dalvik Android 虚拟机
ADB Android Debug Bridge
DDMS Dalvik Debug Monitor Service

Dalvik其实是一个渔村来着。

Dalvik is avirtual machine(VM) designed and written by Dan Bornstein at Google.Bornstein named Dalvik after a fishing village in Iceland where some of his ancestors lived.


开发环境

所需软件:JDK,Eclipse,ADT ,Android SDK

Android以Java作为开发语言,Google提供基于Eclipse的开发插件ADT,所以一般都是使用Eclipse作为开发环境。显然,你要先学Java。本人之前学过C++,看过Thinking in Java一点,Java程序倒没写过。不过开始Android开发问题不大,所以不要担心,不必花大把时间把Java“学完”,再开始Android开发。

JDK的安装这里不展开,网上有很多教程,自己搜一下。就是直接安装+添加环境变量。

Eclipse直接解压就能运行,我运行的时候弹出一个显示各种配置信息的窗口而不能进入程序,google一下,发现把目录下的eclipse.ini 中“--launcher.XXMaxPermSize”改小成156m就能运行了。

ADT 打开Eclipse,Help --->Install New Software Add Location填: https://dl-ssl.google.com/android/eclipse ,名字随便。如果不行就把https改成http。在Work With选刚才创建的名字,下面出现工具,全选。接下来下一步就可以了。最后重启Eclipse。

Android SDK 目前暂时最新的版本是2.2,我原先在天空软件站下了个android-2.2_r01-windows.zip的东东,发现不能用,不知是什么来着,大家小心。 我后来是在这里下的 http://dl.google.com/android/android-sdk_r06-windows.zip 经验就是到官网找最可靠,其他的软件也是,不过Android的官网被墙了,还得,比较无语。解压到一个目录,然后在Eclipse--Window-Preferences-Android,选SDK解压的目录,会提示是否正确的。

接下来就可以创建AVD了,Window -> Android SDK and AVD Manager ,发现在这里自动安装SDK好像也行啊。显然要在Virtual Devices创建AVD,比较蛋疼的来了。

New按钮被隐藏了。。我还以为安装出现问题。。重装了一次。。把鼠标移到窗口右边框,然后把窗口拉大,就能看见被隐藏的New按钮了。坑爹么,这是。。。 (╬▔ ω▔) 选项自己选就可以了,比较简单。

HelloWorld

接下来就可以新建一个振奋人心的经典程序Helloworld了。

File > New >Android Project ,注意选好SDK的版本,勾选Creat Activy,至于Activy是什么,后文会介绍。

Run > Run configurations ,选好AVD就可以跑了,一行代码都不用写。

启动还蛮卡的。。如果出现无响应什么的,记得点取消。


会出现类似的画面,文字我改了,后面会介绍。当看到程序能运行起来还是蛮兴奋的。


书籍推荐

我买的是《Android应用开发揭秘》,据说不错,销量很好,但看了几天,依然没有入门的感觉。觉得这么下去不是办法,果断在网上搜一下别的参考书,随便下了本《Hello,Android》,虽然是英文的,看了倒发现不错。文中主要介绍了一个Sudoku数独游戏的例子,并随着章节的内容,不断完整这个游戏。比较好的就是列出代码之后,后文会有对代码及时到位的讲解。 《Android应用开发揭秘》里面的内容还是很丰富的,但内容的编排不适合入门阅读,所以我比较推荐 《Hello,Android》,虽然是英文的,但很容易看懂,没什么大的障碍。毕竟英语阅读能力对开发是很重要。 我快速看了 《Hello,Android》前面一半之后,有种茅塞顿开的感觉,觉得可以开始动手做些小程序了。毕竟学习的过程是从简单的程序入门,然后逐步做些复杂的程序,就像画画一样,先画出框架,然后逐步把细节加上,最后上色。而 《Android应用开发揭秘》把内容分解开,这样难以把握整个程序框架。

Android工程概况

安装过手机软件的用户都知道,下载软件时要根据自己手机的屏幕下载相应的版本。所以这里出现了多个drawable目录,hdpi,ldpi,mdpi对应不同的分辨率。而layout-land对应的是横屏,没有-land对应的就是默认的竖屏了。 可见Android程序的界面可以拥有不错的兼容性。了解工程包含的文件类型之后,思路会更加清楚。可能比较特别的就是把文字常量单独保存在values里,虽然这样会稍微有点麻烦,但对于修改和多语言是非常有帮助的。

landscape在计算机领域一般取的意思是”横屏“,字典里查到的一般是风景的意思。我以前那部索爱手机里面自带的滑雪游戏就把横屏模式译成”风景模式“(╬▔ ω▔)。。没文化真可怕。。

上面这张是《Hello,Android》里面的插图,android主页也有类似图,不过图例没有这张清晰。了解程序的生命周期是相当重要,一些操作必须恰当地安排在其中某个过程。刚开始觉得很乱,以后慢慢熟悉就好。

Activy 和 Intent

简单来说,Activy相当于windows程序的一个窗口,因为手机屏幕比较小,程序一般是全屏运行,所以也可以理解成程序运行时的一个屏幕界面。

Intent 中文的意思是意图。这里可以简单理解为切换Activy的桥梁。


练习的例子

想学好编程,最大的诀窍就是多动手编。Android开发也不例外。个人觉得带着具体的目标去学习效果最好。比如说,我想完成一个某种功能的软件,然后带着这个目标去学习,这样在学习过程中,那些开发这个软件需要的知识你会特别注意,学习效果比较好。毕竟软件开发通常会涉及很多知识,全部去记也不太现实,有些你只需了解个大概,需要的时候去查就可以。而那些常用的部分,实践的时候会多次涉及,自然会记住。

《Hello,Android》中的例子是一个Sudoku游戏,逻辑相对复杂。 我选择练习的是一个简单的游戏--剪刀石头布,逻辑相当简单,所以可以把精力集中在编程实现上。

我给程序设置了一个Preference参数设置页,并给游戏主页面增加一个menu,还有一个About的页面,麻雀虽小五脏俱全,基本上一个程序的框架就完整了,对于练习来说是相当不错的。刚开始有些地方不熟悉,不过可以参考Sudoku例子,这样印像更深。加上美工,这个程序做了几天。把截图发到人人网,发现大家都比较感兴趣。

具体的细节,剪刀石头布的图片是gif格式的,背景透明,选中的时候设置半透明背景色。而电脑出的剪刀石头布和问号图片的大小一致,点击go按钮之后替换ImageView的ImageResource,这样布局就不会移动了。都是用最简单的方式实现。

提醒

1.像上面的“stopped unexpectedly”可能大部分初学者会遇到。因为没有提供其他信息,确实很难排查,给初学者造成困难。

《Hello,Android》里面介绍如果Activy没有在AndroidManifest.xml文件注册会出现这种提示。而我是因为把findViewById放在

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

之前,造成无法找到相应资源。希望给大家提个醒。


2.在Eclipse右下方有Console(Android)按钮,该窗口会提供有用的提示,如果关了记得适时打开。

3.像Layout的属性如果有不清楚的可以到 http://developer.android.com/ 查看,不过国内被墙了,自备吧。好好利用官方提供的资料,不要害怕英文。

4.在网上查了切换模拟器屏幕方向的快捷键,不过好像改了。我用ctrl+F12 才能切换方向。

题外话

看到一点有趣的东东

剪刀、石头、布是大家都会玩的游戏,在一切随机的前提之下,输、赢和平手的机率应该是刚好各三分之一。但事实真的 是如此吗?纽约时报做了一个小猜拳机器人跟你玩,计算机分成两个难度模式:初学者(Novice)只会根据你的出拳习惯来猜你下一个会出什么,而高难度 (Veteran)等级则会从收集了超过二十万场剪刀、石头、布的数据库中,猜你的下一步会出什么(过了五局之后,就可以点右上的「See What the Computer is Thinking」看计算机是怎么猜的)。你能打败「一般大众」吗?

点击下面的链接试试吧:
http://www.nytimes.com/interactive/science/rock-paper-scissors.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics