- 浏览: 732356 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lingsuch:
Android网络连接判断与处理 -
月光照着我:
写的不错,作为笔记了
Android中LayoutInflater的使用 -
智博王锋:
好文章是要顶的!
Android中LayoutInflater的使用 -
云南白药:
...
Android中LayoutInflater的使用 -
万新one:
理解了许多。解释的不错。3Q.
Android中LayoutInflater的使用
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)
下载地址:
1.4 ADT 0.9.7
下载地址:http://dl.google.com/android/ADT-0.9.7.zip
1.5 安装
依次下载,按照文章步骤安装即可,注意安装SDK时,需要如下设置下:
不然更新不下来,那个链接地址被墙了。
二、 Android系统架构
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项目工程说明
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)
例子: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
安装apk文件: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拖拽出来即可。
发表评论
-
Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误完美解决)
2013-09-11 15:09 9708最近编程时遇到问题:写了一个android小程序,打包后用 ... -
Android 引用外部项目库
2013-02-05 16:36 2915项目中要集成其他项目由于集成项目庞大不想机械的copy,就想 ... -
Android网络连接判断与处理
2013-01-29 16:33 22161获取网络信息需要在AndroidManifest.xml文 ... -
Android有用代码片段2
2013-01-22 19:51 2068记得2011年的时候,整理了android有用代码片段这篇文 ... -
android有用代码片段
2013-01-22 19:48 2869有时候,需要一些小的功能,找到以后,就把它贴到了博客下面, ... -
Android 使用draw9patch技术实现不失真背景
2012-09-23 16:27 3604做人要大度,海纳百川,做事要圆滑,左右逢源,这让我想到了 ... -
Android解析Json(Google Gson)
2012-09-21 09:43 3872什么是JSON? 1.JSON:Javascript ... -
Android第三方包组件实现总结
2012-09-03 15:35 2115前沿: 在android开发过程中,往往会需要创建组件 ... -
Android 获取手机总内存和可用内存等信息
2012-08-17 17:35 5880在android开发中,有时候我们想获取手机的一些硬件信息 ... -
Android中attr自定义属性详解
2012-07-19 10:17 1459首先在你需要使用自定义属性的布局文件中定义标签,当 ... -
Android 读取<meta-data>元素的数据
2012-06-21 13:31 1269在AndroidManifest.xml ... -
获取AndroidManifest里的信息
2012-06-21 12:09 989看附件 -
Java基础之软引用、弱引用、虚引用
2012-06-18 10:02 11561、概述 在JDK1.2以前 ... -
Android播放声音MediaPlayer类详细介绍
2012-06-06 13:13 11925MediaPlayer ... -
Android 画图之抗锯齿
2012-05-30 18:00 1973在画图的时候,图片如果旋转或缩放之 ... -
Android 画布绘图
2012-05-30 17:58 31949我们已经介绍了Canvas,在 ... -
Android中LayoutInflater的使用
2012-05-28 12:15 33582Inflater英文意思是膨胀,在Android中应该是扩展的 ... -
Android Matrix理论与应用详解,附三角函数公式
2012-03-19 15:13 5067Matrix学习——基础知识 以前在线性代数中学习了矩阵,对 ... -
Android 实现从网络上异步加载图像
2012-03-17 15:44 1162研究了android从网络上异步加载图像,现总结如下: (1 ... -
Activity中ConfigChanges属性配置描述
2012-02-08 23:01 2098通过设置这个属性可以使Activity捕捉设备状态变化,以下是 ...
相关推荐
这个实例旨在帮助新手快速理解Android工程的基本结构和编程逻辑。 首先,我们需要了解在Android中拨打电话的核心API——`Intent`。`Intent`是Android系统中的一个关键概念,它用于启动其他组件(如Activity、...
搭建Android 2.2开发环境是每个Android开发者都需要经历的基础步骤。这个过程涵盖了安装必要的软件、配置环境变量以及获取和编译源码等关键环节。本文将深入探讨这些知识点,帮助初学者顺利入门。 首先,我们需要...
《Android2.2开发入门教程详解》是一份针对初学者的宝贵资源,旨在引导读者进入Android应用程序开发的世界。本教程将详细介绍如何安装Android SDK开发工具包,并指导如何配置开发环境,为后续的编程实践奠定坚实基础...
"Android2.2简单计算器"是一个很好的入门项目,它可以帮助初学者理解Android应用的基本结构、UI设计以及事件处理等核心概念。下面将详细介绍这个项目的知识点: 1. **Android Studio环境**:首先,你需要安装并熟悉...
**Basic4Android 2.2 完整版详解** Basic4Android(简称B4A)是一款基于Basic语言的Android应用开发工具,它为开发者提供了一种简单易学、高效的编程环境,使得没有Java基础的程序员也能快速上手开发Android应用...
总之,"基于Android2.2的联系人的基本操作"是一个全面的教程,涵盖了Android开发中重要的数据存储和用户界面部分。通过学习这个源码,开发者不仅可以掌握联系人操作,还能提升对Android系统和编程模式的理解,为更...
从给定的文件信息来看,这是一本名为《Android开发从入门到精通》的书籍,作者为扶松柏,版本为扫描版。...对于初学者而言,系统地学习和实践这些知识,将有助于快速提升自己的开发技能,成为Android领域的专业开发者。
首先,我们要明白,Android 2.2(Froyo)是Google在2010年发布的一个版本,虽然现在已经较旧,但它仍然是许多入门级设备和教学环境中的常见平台。在这个版本上开发应用,有助于开发者掌握早期Android API的使用,...
android2.2 opengl es 2.0 入门基础代码教程 通过简单代码总结,帮助新手入门。 内容包括:绘制基础、投影方式、光照效果、纹理绘制几个方面。
- 将android源代码压缩包(如android_2.2.tar.gz)移动到刚才创建的android目录下,并解压。 - 将解压后得到的android_2.2目录下的所有文件移动到/home/android目录下。 5. 搭建Android编译环境 - 进入到/home/...
这一部分将引导读者深入了解Android SDK的组成部分,包括各种工具、API文档和示例项目,帮助初学者快速熟悉开发环境。 **3.2 应用程序生命周期** 应用程序生命周期是理解Android应用行为的关键,涉及到应用的启动、...
6. Android平台开发之旅:书籍“Android平台开发之旅”是Android学习入门书籍推荐.pdf文件中推荐的一本书籍,该书籍涵盖了Android平台1.5到2.2版本的主要功能特性,如平台基础、开发环境搭建、程序框架、高级界面和...
《学习Android NDK入门很简单》这篇教程主要针对想要掌握Android NDK开发的初学者,旨在指导如何入门并开始使用NDK。NDK是Android开发中的一个重要工具,它允许开发者使用C/C++原生代码来编写部分应用,尤其适用于...