Android开发简单教程文档格式.docx
《Android开发简单教程文档格式.docx》由会员分享,可在线阅读,更多相关《Android开发简单教程文档格式.docx(20页珍藏版)》请在冰点文库上搜索。
![Android开发简单教程文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/bbd04711-1270-4c02-95ec-0ed7e67c4e1f/bbd04711-1270-4c02-95ec-0ed7e67c4e1f1.gif)
2)如果你要在此SDK上开发应用程序和游戏应用,那么你需要接受并遵守所有许可内容(AcceptAll)
3)点击“InstallSelected”
4.然后就是等待安装程序下载选择的包来安装.
“InstallingArchives”窗口
ADT安装:
1.打开eclipseIDE,进入菜单中的“Help”->
”InstallNewSoftware”
2.点击Add……按钮,弹出对话框输入Name和Location,Location输入:
https:
//dl-
如果不好用就改为http:
3.确定返回后,在workwith后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有DeveloprTools,展开它会有AndroidDDMS和AndroidDevelopmentTool,勾选他们,然后按照提示一步一步next
完成之后:
1)选择Window>
Preferences……
2)在左侧面板选择Android,然后在右侧点击Browse…并选中SDK路径
3)点击Apply。
OK配置完成
AVD创建:
为使Android应用程序可以在模拟器上运行,必须创建AVD
1)在Eclipse中,选择Window>
AndroidSDKandAVDManager
2)点击左侧面板的VirtualDevices,再点击右侧的New输入一个AVD名称,选择一个Target,输入模拟的SDCard的容量大小,选择一个外观皮肤Skin,点击CreateAVD即可完成AVD的创建
3)运行新建的模拟器
a.在列表里选择新建的要运行的模拟器(VirtualDevice)
b.单击“Start…”
c.单击“Launch”
注意:
如果点击左侧面板的VirtualDevices,再点击右侧的New,而target下拉列表没有可选项时,点击面板左侧的AvailablePackages,在右侧勾选
https:
//dl-repository/repository.xml
然后点击InstallSelected按钮,然后按照提示做就行了
2.Android项目的创建目录结构及各文件作用
Android项目创建:
打开file—new--AndroidProject
BuildTarget:
选择sdk的版本
Applicationname:
一个易读的标题在你的应用程序上
Packagename:
包名,遵循Java规范,用包名来区分不同的类是很重要的
CreateActivity:
项目的主类名,这个类将会是Android的Activity类的子类。
一个Activity类是一个简单的启动程序和控制程序的类。
它可以根据需要创建界面,但不是必须的
Android目录结构及文件作用:
1.Android目录结构
src目录—-存放源代码文件
gen目录—-ADT插件生成的文件,一般不作修改
assets目录—-存放资源文件目录,不会在R.java中生成ID
res目录—-存放资源文件目录,这里面的每个文件
AndroidManifest.xml---整个应用程序配置文件,存储一些包名版本号程序图标程序标签
default.properties---检查版本文件,自动生成,不能修改(修改将被删除)
2.重点目录及文件
res/drawable-xxxx是存放图片的目录
drawable-hdpi---存放高分辨率版本
drawable-ldpi---存放中分辨率版本
drawable-mdpi---存放低分辨率版本
res/layout目录---存放布局文件(xml文件),每个Activity对应一个XML文件
res/value目录---存放存储值文件(xml文件)
R.java文件
drawable类---给图片生产的ID
layout类---给布局文件生成的ID
string类---给string.xml里面键值对生成的ID
main.xml
控制Activity中控件的位置,每个Activity对应一个此布局文件
string.xml
存放键值对,一般用在程序的多语言版本的切换(多个文件,键一样,值不同)
在项目上右键runas>
AndroidApplication程序就运行了
3.Android应用解析
资源文件解析:
AndroidManifest.xml样例,代码如下
<
?
xmlversion="
1.0"
encoding="
utf-8"
>
manifestxmlns:
android="
package="
com.test.AndroidTMS.views"
android:
versionCode="
1"
versionName="
<
applicationandroid:
icon="
@drawable/tmslogo"
label="
@string/app_name"
activityandroid:
name="
.AndroidTMS"
intent-filter>
actionandroid:
android.intent.action.MAIN"
/>
categoryandroid:
android.intent.category.LAUNCHER"
/intent-filter>
/activity>
/application>
uses-permissionandroid:
android.permission.READ_PHONE_STATE"
/uses-permission>
uses-sdkandroid:
minSdkVersion="
5"
/manifest>
AndroidManifest.xml解析
manifest
根节点,描述了package中所有的内容
xmlns:
android
包含命名空间的声明。
android=http:
//schemas.
Package
声明应用程序包
application
包含package中application级别组件声
明的根节点。
此元素也可包application的一些全局和默认的属性,如标签、icon、主题、必要的权限,等等。
一个manifest能包含零个或一个此元素(不能大于一个)
android:
icon
应用程序图标
label
应用程序名字
Activity
用来与用户交互的主要工具。
Activity是用户打开一个应用程序的初始页面,大部分
被使用到的其他页面也由不同activity所实现,并声明在另外的activity标记中。
注意,每一个activity必须有一个<
activity>
标记对应,无论它给外部使用或是只用于自己的package中。
如果一个activity没有对应的标记,你将不能运行它。
另外,为了支持运行时查找Activity,可包含一个或多个<
元素来描述activity所支持的操作
name
这个activity对应的类别
这个activity的代号
intent-filter
声明了指定的一组组件支持的Intent值,从而形成了IntentFilter。
除了能在此元素下指定不同类型的值,属性也能放在这里来描
述一个操作所需的唯一的标签、icon和其他信息
action
组件支持的Intentaction
category
组件支持的IntentCategory。
这里指定
了应用程序默认启动的activity
uses-permission
应用需要的权限应当在此处申请,所申请的权限应当被系统或某个应用所定义,否则视为无效申请。
同时,使用权限的申请需要遵循权限授予条件,非platform认证的应用无法申请高级权限。
uses-sdk
该应用程序所使用的sdk版本相关
Strings.xml解析
resources>
stringname="
hello"
HelloWorld,AndroidTMS!
/string>
app_name"
AndroidTMS<
/resources>
这个文件很简单,就定义了两个字符串资源,与R.java中对应的索引,
publicstaticfinalclassstring{
publicstaticfinalintapp_name=0x7f040001;
publicstaticfinalinthello=0x7f040000;
}
String资源的使用
Resources
r
=
this.getContext().getResources();
String
appname=
((String)
r.getString(R.string.app_name));
hello=
r.getString(R.string.hello))
;
AndroidManifest.xml中调用
项目的布局文件layout中资源文件的解析
main.xml
LinearLayoutxmlns:
layout_width="
fill_parent"
layout_height="
wrap_content"
orientation="
vertical"
gravity="
center_vertical"
TextViewandroid:
id="
@+id/username_view"
android:
layout_marginLeft="
60dip"
layout_marginRight="
30dip"
text="
用户信息"
center_horizontal"
textAppearance="
attr/textAppearanceMedium"
@+id/dataInfo"
10dip"
layout_marginTop="
/TextView>
Buttonandroid:
退出程序"
@+id/btnExit"
/Button>
/LinearLayout>
与R.java中对应的索引
publicstaticfinalclassdrawable{
publicstaticfinalinticon=0x7f020000;
publicstaticfinalclassid{
publicstaticfinalintbtnExit=0x7f050002;
publicstaticfinalintdataInfo=0x7f050001;
publicstaticfinalintusername_view=0x7f050000;
publicstaticfinalclasslayout{
publicstaticfinalintmain=0x7f030000;
}
layout布局文件的加载
setContentView(R.layout.user_info);
layout布局文件中按钮的调用
Buttonbtn=(Button)findViewById(R.id.btnExit);
按钮的监听事件,当用户点击按钮的时候询问用户是否要退出改程序,如果选择是,退出程序,选择否不执行任何操作
btn.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
AlertDialogdlg=newAlertDialog.Builder(ArtistsActivity.this)
.setTitle("
LoginExit"
).setMessage("
您要退出程序?
?
"
)
.setPositiveButton("
确定"
newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacedialog,intwhichButton){
finish();
}
}).setNegativeButton("
取消"
}).create();
dlg.show();
}
});
程序解析:
publicclassAndroidTMSextendsActivity{
/**Calledwhentheactivityisfirstcreated.*/
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextViewtv=(TextView)findViewById(R.id.dataInfo);
TelephonyManagertm=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
Stringimei=tm.getSimSerialNumber();
tv.setText(imei+”sim卡号”);
Buttonbtn=(Button)findViewById(R.id.btnExit);
btn.setOnClickListener(newOnClickListener(){
finish();
主程序AndroidTMS类继承自TabActivity类,重写了voidonCreate(BundlesavedInstanceState)方法。
在onCreate方法中通setContentView(R.layout.main)设置了Activity要显示的布局文件(\layout\main.xml)。
程序中的Stringimei=tm.getSimSerialNumber();
是读取SIM卡序列号,需要有权限,所以在Androidmani.xml中加入了权限
4.Android生命周期
activity是单独的,用于处理用户操作。
几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,可以通过setContentView(View)接口把UI放到activity创建的窗口上,当activity指向全屏窗口时,也可以用其他方式实现:
作为漂浮窗口(通过windowIsFloating的主题集合),或者嵌入到其他的activity(使用ActivityGroup)。
大部分的Activity子类都需要实现以下两个接口:
onCreate(Bundle)接口是初始化activity的地方.在这儿通常可以调用setContentView(int)设置在资源文件中定义的UI,使用findViewById(int)可以获得UI中定义的窗口.
onPause()接口是使用者准备离开activity的地方,在这儿,任何的修改都应该被提交(通常用于ContentProvider保存数据).
为了能够使用Context.startActivity(),所有的activity类都必须在AndroidManifest.xml文件中定义有相关的“activity”项。
activity类是Android应用生命周期的重要部分。
前台的生命周期,从onResume()开始到onPause()结束。
在这段时间里,该Activity处于所有Activity的最前面,和用户进行交互。
Activity可以经常性地在resumed和paused状态之间切换,例如:
当设备准备休眠时,当一个Activity处理结果被分发时,当一个新的Intent被分发时。
所以在这些接口方法中的代码应该属于非常轻量级的。
Activity的整个生命周期都定义在下面的接口方法中,所有方法都可以被重载。
所有的Activity都需要实现onCreate(Bundle)去初始化设置,大部分Activity需要实现onPause()去提交更改过的数据,当前大部分的Activity也需要实现onFreeze()接口,以便恢复在onCreate(Bundle)里面设置的状态。
在系统中的Activity被一个Activity栈所管理。
当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。
Activity有四种本质区别的状态:
在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(activeorrunning)
如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity或者一个透明的Activity被放置在栈顶),叫做暂停状态(Paused)。
一个暂停状态的Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被杀掉。
如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。
它依然保持所有状态和成员信