Android2.2快速入门

系统 2025 0

Android2.2快速入门

 

前言

  这是前段时间用于公司Android入门培训的资料,学习Android三周时间收集整理的,时间仓促,希望能对像我这样还没入门就直接上项目的人一点帮助  :)

 

声明

 

  欢迎转载,但请保留文章原始出处:)

    博客园:http://www.cnblogs.com

    农民伯伯: http://www.cnblogs.com/over140/

 

正文

一、              环境配置和安装( Android2.2

参考文章: 这里

1.1      JDK

1.2      SDK

下载地址: http://dl.google.com/android/android-sdk_r06-windows.zip

1.3      Eclipse 3.5 (Galileo)

下载地址:

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

1.4      ADT 0.9.7

下载地址: http://dl.google.com/android/ADT-0.9.7.zip

1.5      安装

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

Android2.2快速入门  

 

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

 

 

二、              Android 系统架构

 

    Android2.2快速入门

    2.1    Linux 内核 (Linux Kernel)

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

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

    2.2 中间件

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

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

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

  2.3    应用程序框架 (Application Framework)

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

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

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

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

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

  2.4    应用程序 (Applications)

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

 

三、              Android 系统包说明

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 项目工程说明

Android2.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( 定义尺寸值 :dimension value)

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

 

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

 

五、              基本控件

1     

2     

3     

4     

5     

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

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

5.2      编辑框 (EditText)

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

5.3      下拉列表 (Spinner)

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

5.4      进度条 (ProgressBar)

效果和代码: http://www.eoeandroid.com/viewthread.php?tid=1081

5.5      拖动条 (SeekBar)

5.6      评分条 (RatingBar)

 

 

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

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

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

5.9      日期和时间 (DatePicker TimePicker)

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

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

  GridView http://blog.csdn.net/hellogv/archive/2009/09/18/4567095.aspx

  ListView http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html

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

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

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

5.13  菜单 (Menu)

5.14  提示 (Toast)

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

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

 

六、              布局和容器

  6.1    帧布局 (FrameLayout)

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

  6.2    线性布局 (LinearLayout)

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

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

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

  6.3    绝对布局 (AbsoluteLayout)

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

  6.4    相对布局 (RelativeLayout)

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

  6.5    表格布局 ( TableLayout )

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

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

  6.6    选项卡 ( TabWidget)

       Android2.2快速入门

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

 

七、              常用代码

  7.1    在当前 Activity 中启动另外一个 Activity

         startActivity(new Intent(this, 目标 Activity.class));

 

  7.2    从当前 ContentView 从查找控件

      (Button)findViewById(R.id.btnAbout)

    R.id.btnAbout 指控件 id

 

  7.3    获取屏幕宽高

DisplayMetrics dm = new DisplayMetrics();

// 获取窗口属性

getWindowManager().getDefaultDisplay().getMetrics(dm);

int screenWidth = dm.widthPixels;//320

int screenHeight = dm.heightPixels;//480

 

  7.4    无标题栏、全屏

// 无标题栏

requestWindowFeature(Window.FEATURE_NO_TITLE);

// 全屏模式

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

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

 

  7.5    注册 activity

         所有用到的 Activity 都必须在 AndroidManifest.xml 中注册,否则会报空指针错误。如: <activity android:name="com.common.TestView"> ,注意是包名 + 类名。

 

八、              Adb 命令行

  8.1    DOS 进入 android-sdk-windows\tools 目录

  8.2    Linux

登录 linux 命令: adb shell

列出当前文件 ls

删除文件 rm 文件名

  8.3    Sqlite

登录 sqlite 命令: sqlite3

  8.4    Adb 命令

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

上传文件: adb push

安装 ap k文件:adb install android123.apk

 

九、              Apk 文件破解

  9.1    获取 apk 的资源图片

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

 

  9.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 进入该目录,输入: aapt d 91callinfo.apk 91callinfo ,这里第四个参数为破解完存放的路径。

 

  9.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 文件中解压出来。

 

十、              小技巧

  10.1          使用系统的图标

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

<ImageView android:src="@android:drawable/ic_menu_call"

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

http://since2006.com/android/1.5-drawables.php

http://since2006.com/android/1.6-drawables.php

 

  10.2          让控件透明,如 ImageButton

         设置 android:background="@null"

 

  10.3          layout 中直接指定 onclick 方法

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

 

  10.4          PC 键盘控制模拟器

PC 键盘

模拟器按键

说明

Home

Home

主页

F2

Menu

菜单

Esc

Back

后退

F3

Call

打电话

F4

Hangup

挂断

F5

Search

搜索

Ctrl+F12

 

横竖屏切换

 


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

         AndroidManifest.xml 中设置 activity

         android:windowSoftInputMode="stateHidden"

 

  10.6          界面可视化布局工具

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

         DroidDraw http://www.droiddraw.org/

 

  10.7           Eclipse 中看 Android 的源码

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

 

十一、       Q & A

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

                  Window( 窗口 ) -> Show Views( 显示视图 ) -> device -> view menu( 视图菜单 )

-> Reset adb

 

  11.2           匿名类中如何使用 this

         classname( 类名 ).this

 

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

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

Android2.2快速入门


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论