Android 2.2快速入门学习教程

移动开发 Android
Android 2.2快速入门学习是本文要介绍的内容,主要是来了解并学习Android 2.2入门学习的内容,具体关于Android 2.2内容的详解来看本文。

Android 2.2快速入门学习是本文要介绍的内容,主要是来了解并学习Android 2.2入门学习的内容,具体关于Android 2.2内容的详解来看本文。

一、环境配置和安装Android 2.2

参考文章:这里

1、JDK

2、SDK

下载地址:

  1. http://dl.google.com/android/android-sdk_r06-windows.zip 

3、Eclipse3.5(Galileo)

下载地址:

  1. http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/R/eclipse-java-galileo-win32.zip 

4、ADT0.9.7

下载地址:

  1. http://dl.google.com/android/ADT-0.9.7.zip 

5、安装

依次下载,按照文章步骤安装即可,注意安装SDK时,需要如下设置下:

不然更新不下来,那个链接地址被墙了。

二、Android 2.2系统架构

1、Linux内核(LinuxKernel)

*Android 2.2运行在linuxkernel2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。

*Linux内核是硬件和软件层之间的抽象层。

2、中间件

*中间件包括两部分:核心库和运行时(libraries&Androidruntime)

*核心库包括,SurfaceManager显示系统管理库,负责把2D或3D内容显示到屏幕;MediaFramework媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQlite数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit浏览器引擎等。

*Dalvik虚拟机:区别于Java虚拟机的是,每一个Android应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。

3、应用程序框架(ApplicationFramework)

*丰富而又可扩展性的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),可嵌入的web浏览器。

*内容提供者(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

*资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。

*通知管理器(NotificationManager)使得应用程序可以在状态栏中显示自定义的提示信息。

*活动管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。

4、应用程序(Applications)

*Android系统会内置一些应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。

#p#

三、Android 2.2系统包说明

android.app:提供高层的程序模型、提供基本的运行环境

android.content:包含各种的对设备上的数据进行访问和发布的类

android.database:通过内容提供者浏览和操作数据库

android.graphics:底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.

android.location:定位和相关服务的类

android.media:提供一些类管理多种音频、视频的媒体接口

android.net:提供帮助网络访问的类,超过通常的Java.net.*接口

android.os:提供了系统服务、消息传输、IPC机制

android.opengl:提供OpenGL的工具

android.provider:提供类访问Android的内容提供者

android.telephony:提供与拨打电话相关的API交互

android.view:提供基础的用户界面接口框架

android.util:涉及工具性的方法,例如时间日期的操作

android.webkit:默认浏览器操作接口

android.widget:包含各种UI元素(大部分是可见的)在应用程序的屏幕中使用

四、Android 2.2项目工程说明

src:存放java源代码。

gen:存放编译器自动生成的java代码,这个目录下的文件是系统自动维护的。

assets:存放在这个目录下的文件,无论是mp3还是图片,都会被打包到发布包中。

res:资源文件目录,添加到这个目录下的文件都会在gen下的R.ava文件中显示出来;如果res下存放的资源在应用中没有使用到,那么在gen下的R.java的文件中就不会显示,那么打包的时候就不会将这部分资源打包,减少了应用的发布文件大小。

drawable:存放图片文件,注意图片名称必须是[a-z0-9_.]组成;drawable目录下不能分子级目录,只能通过命名方法来加以区分。

layout:存放与UI相关的布局文件,都是xml文件。

raw:直接复制到设备中的任意文件,不会被编译,可以放数据库文件。

values:存放字符串,颜色,数组等常量数据。可以任意命名,但是通常命名:color.xml、strings.xml、array.xml、styles.xml、dimens.xml(定义尺寸值:dimensionvalue)

xml:任意的XML文件,在运行时可以通过调用Resources.getXML()读取。

参见

  1. http://www.inandroid.cn/bbs/thread-1401-1-1.html 

五、基本控件

1、文本框(TextView)、自动完成(AutoCompleteTextView)

自动完成的效果和代码:http://android.yaohuiji.com/archives/390

AutoCompleteTextView:

2、编辑框(EditText)

android:hint内容为空时提醒的信息,如“请输入”

3、下拉列表(Spinner)

android:entries可以通过在strings.xml中指定string-array来设置选项。

4、进度条(ProgressBar)

效果和代码:

  1. http://www.eoeandroid.com/viewthread.php?tid=1081 

#p#

5、拖动条(SeekBar)

6、评分条(RatingBar)

7、按钮(Button)、图片按钮(ImageButton)

Button:

ImageButton:

8、图片框(ImageView)、画廊(Gallery)

ImageView

Gallery

画廊效果:http://android.yaohuiji.com/archives/565

9、日期和时间(DatePicker、TimePicker)

AnalogClock

DigitalClock

Chronometer(计时器)

DatePicker

DatePickerDialog

TimePicker

TimePickerDialog

10、单项选择(RadioGroup、RadioButton)、多项选择(CheckBox)

CheckBox

RadioButton

ToggleButton

11、表格(GridView)、列表(ListView)

GridView

ListView

  1. GridView:http://blog.csdn.net/hellogv/archive/2009/09/18/4567095.aspx  
  2. ListView:http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 

12、对话框(AlertDialog)、对话框中的进度条(ProgressDialog)

AlertDialog

AlertDialog:http://android.yaohuiji.com/archives/655

ProgressDialog:http://aina-hk55hk.javaeye.com/blog/679134

13、菜单(Menu)

14、提示(Toast)

类似于MessageBox,非模式窗口。如:

Toast.makeText(this,"信息",Toast.LENGTH_SHORT).show();

15、GestureOverLayView

文章1、文章2

16、HorizontalScrollView

17、MapView

18、VideoView

19、WebView

20、ZoomControls

 

 

#p#

六、布局和容器

1、帧布局(FrameLayout)

放入其中的所有元素都被放置最左上的区域,无法为这些元素指定一个确切的位置。如果有多个子元素,那么后边的子元素的显示会重叠在前一个元素上。

2、线性布局(LinearLayout)

常用布局,子元素按行或列依次排列。

Android 2.2:layout_gravity是本元素对父元素的重力方向。

Android 2.2:gravity是本元素所有子元素的重力方向。

3、绝对布局(AbsoluteLayout)

可以让子元素指定准确的x/y坐标值,(0,0)为左上角,没有页边框,允许元素之间互相重叠。

4、相对布局(RelativeLayout)

允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定)

5、表格布局(TableLayout)

将子元素的位置分配到行(TableRow)中,注意不会显示边框线也不能够跨行合并单元格。

例子:

  1. http://hi.baidu.com/hoyah/blog/item/d9db34275d6f361a8b82a171.html 

6、选项卡(TabWidget)

例子:

  1. http://fatkun.com/2010/06/android-tabwidget.html 

七、常用代码

1、在当前Activity中启动另外一个Activity

  1. startActivity(newIntent(this,目标Activity.class)); 

2、从当前ContentView从查找控件

  1. (Button)findViewById(R.id.btnAbout)  
  2. R.id.btnAbout指控件id。 

3、获取屏幕宽高

  1. DisplayMetricsdm=newDisplayMetrics();  
  2. //获取窗口属性  
  3. getWindowManager().getDefaultDisplay().getMetrics(dm);  
  4. intscreenWidth=dm.widthPixels;//320  
  5. intscreenHeight=dm.heightPixels;//480 

4、无标题栏、全屏

  1. //无标题栏  
  2. requestWindowFeature(Window.FEATURE_NO_TITLE);  
  3. //全屏模式  
  4. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
  5. WindowManager.LayoutParams.FLAG_FULLSCREEN); 

注意在setContentView()之前调用,否则无效。

5、注册activity

所有用到的Activity都必须在AndroidManifest.xml中注册,否则会报空指针错误。如:,注意是包名+类名。

八、Adb命令行

1、DOS进入android-sdk-windows\tools目录

2、Linux

登录linux命令:adbshell

列出当前文件:ls

删除文件:rm文件名

3、Sqlite

登录sqlite命令:sqlite3

4、Adb命令

列出当前有哪些活动的模拟器:adbdevices

上传文件:adbpush

安装apk文件:adbinstallandroid123.apk

#p#

九、Apk文件破解

1、获取apk的资源图片

直接用WinRAR打开,res/drawable直接拖拽出来即可。

2、获取xml文件信息

虽然能用WinRAR看到里面的xml文件,但是xml是经过优化的,无法直接查看,需要使用apktool工具,下载地址:https://code.google.com/p/android-apktool/。

下载apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一个目录,然后把待破解的apk文件拷贝到同一目录,DOS进入该目录,输入:aaptd91callinfo.apk91callinfo,这里第四个参数为破解完存放的路径。

3、反编译dex获取Java源代码

Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个开源工具:dex2jar,下载地址:http://code.google.com/p/dex2jar/。这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件,然后可以通过jad工具把jar文件反编译成Java源文件,如果只是看看源码的话可以用jd-gui,下载地址:

http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip。

dex文件(classes.dex)可以用WinRAR从apk文件中解压出来。

十、小技巧

1、使用系统的图标

例如调用系统打电话的图标:

图标名称和效果(Android1.5和1.6):

  1. http://since2006.com/android/1.5-drawables.php  
  2. http://since2006.com/android/1.6-drawables.php 

2、让控件透明,如ImageButton

设置android:background="@null"

3、在layout中直接指定onclick方法

不用手动绑定,在layout中设置android:onClick=”methodName”,methodName为对应Activity中的方法,如下格式:publicvoidmethodName(Viewview){}(适应1.6以上版本)

4、用PC键盘控制模拟器

PC键盘模拟器按键说明

HomeHome主页

F2Menu菜单

EscBack后退

F3Call打电话

F4Hangup挂断

F5Search搜索

Ctrl+F12横竖屏切换

5、进入界面就显示/隐藏软键盘

在AndroidManifest.xml中设置activity的

  1. android:windowSoftInputMode="stateHidden" 

6、界面可视化布局工具

系统提供可视化布局并不好用,这里推荐一款,布局完后点生成代码即可:

DroidDraw:http://www.droiddraw.org/

7、在Eclipse中看Android的源码

将源代码拷贝至android-sdk-windows\platforms\android-4\sources下即可。注意源码版本对应android-4文件夹,这里指Android1.6的源码。

十一、Q&A

1、用模拟器调试频繁连不上,或者报emulator-5554disconnected的错误?

  1. Window(窗口)->ShowViews(显示视图)->device->viewmenu(视图菜单)->Resetadb 

2、匿名类中如何使用this?

classname(类名).this

3、程序出错后模拟器上仅显示应用程序遇到问题将关闭怎么办?

可以从LogCat中检查错误,默认LogCat在DDMS视图中,可以通过以下方法调整到Java视图与控制台并列显示:点击Eclipse左下角,点开后在其他里面找到Android 2.2目录下的LogCat拖拽出来即可。

小结:

Android 2.2 快速入门学习教程的内容介绍完了,希望通过Android 2.2 内容的学习能对你有所帮助!

责任编辑:zhaolei 来源: 博客园
相关推荐

2010-09-27 14:39:22

Android

2011-09-14 10:52:39

Android 2.2

2009-09-25 10:24:40

Androind入门教OPhone

2009-06-10 20:03:54

netbeans6.0模块

2010-05-21 12:50:45

Subversion快

2009-07-21 14:24:46

iBATIS教程

2010-05-12 17:41:11

Subversion教

2010-05-27 17:27:45

Subversion快

2016-12-27 14:06:36

Python代码基础

2011-09-05 16:43:00

jQuery Mobi

2010-12-08 09:03:40

SQLiteAndroid

2016-11-21 16:23:24

Android StGoogle

2016-12-02 19:19:35

大数据Hadoop

2020-02-21 08:18:58

JavaScala编程语言

2011-09-02 10:59:10

jQuery Mobi

2011-09-06 16:16:48

jQuery Mobi

2017-09-30 16:06:28

代码注解分析

2014-06-04 10:42:34

Swift苹果iOS

2011-04-12 14:09:55

XML

2011-04-12 14:43:08

XML
点赞
收藏

51CTO技术栈公众号