- 1. 搭建开发环境
>解压压缩文件,得到:①Android SDK (类似于JDK)② Eclipse ③ADT
>配置两个path环境变量:D:\adt-bundle-windows-x86\sdk\platform-tools;D:\adt-bundle-windows-x86\sdk\tools
>配置基本的Eclipse的设置:
调整字体大小,字符集,配置android sdk的位置
>创建模拟器:
- 2. 创建第一个Android项目: HelloAndroid
next-next-next-Empty Activity-next-finish
打开应用程序的AndroidManifest.xml文件,修改minsdkVersion值为8.
- 3. 四个文件目录结构:
1). 应用项目的
>L01_HelloWorld:指明当前工程的名称
>src:存放我们编写的java代码
>XxxActivity:一个XxxActivity对应着一个可以与用户交互的应用程序的界面。
>继承于Activity
>重写onCreate()方法。在方法内:
super .onCreate(savedInstanceState); 调用父类的此方法,进行必要的初始化操作
setContentView(R.layout. activity_main); 加载布局文件
>gen : 系统自动生成的文件目录。里面包含着以应用程序包名命名的一个包 ,包含着R.java
>R类:实际上代表着res文件目录,通过R类,可以实现代码和应用程序之间的调用。
R类的内部结构是系统自动生成的,一般我们不去操作
>assets:资产目录
>bin:编译以后的classes.dex 文件,apk文件都保存在此目录下
>libs:存放第三方的jar包
res:全称:resource:资源,代表着当前应用程序的资源目录。内部保存着layout/drawable / values-strings/values-style
>drawable-xxx:提供了不同分辨率的图片,供不同分辨率的手机所使用。
>layout:布局文件。对应着每一个应用程序界面的布局,布局文件就声明在此文件目录下。
文件都是xml格式
>values-strings.xml:声明当前应用程序需要的字符串数据。可以在功能清单文件和布局文件中使用
>values-style.xml:当前应用程序的样式和主题都声明在此
AndroidManifest.xml:功能清单文件。类似于web工程中的web.xml文件
>指明当前应用程序的包名、可以适配的sdk的最低版本、当前应用程序的版本号、权限
<application>:指明当前应用程序的名称label,图标icon,主题Theme
<activity>对应着一个用户界面的Activity。每一个应用程序的Activity的子类,都需要在此功能清单文件中注册。
可以声明属性:name /label /theme / launchmode
< intent-filter>
< action android:name ="android.intent.action.MAIN" />
< category android:name ="android.intent.category.LAUNCHER" />
</ intent-filter>
此处的intent-filter的作用:
action:当前的action的值指明了当前的Activity是当前应用的主界面
category:使得当前的应用程序可以显示在系统的桌面应用中
2). 应用APK的
3). Android系统的
4). SDK的
- 4. 三个应用开发工具
1). ADB: 调试工具
2). DDMS: eclipse中的debug调试工具:
3). Log: 日志工具类
- 5. 尺寸
结论:
1.如果给视图组件设置具体的长度或者宽度时,我们要选择使用dp为单位,而不要选择px为单位。
2.如果设置视图组件的字体的大小,我们选择sp,而不用dp.
|
- 6.关于颜色
关于颜色的设置: RGB : red green blue :范围00~ff
红色:#ff0000
绿色:#00ff00
蓝色:#0000ff
白色:#ffffff
黑色:#000000
|
- 7. 相关API:
- 8. 应用练习:
完成步骤:
1.创建一个安卓工程,修改AndroidManifest.xml中的minsdkVersion.
2.完成布局文件:xxx.xml文件。 <Button ></Button> <Button />
3.完成业务逻辑:
1)在XxxActivity的onCreate方法中加载布局文件:setContentView(R.layout.xxx);
2)获取界面上对应的视图对象: findViewById(R.id.xxx)
3)在试图对象上绑定指定的监听器: button.setOnClickListener(listener);
必须重写监听器的抽象方法: onClick()
补充:
模拟器经常掉线,可以考虑的修改措施:
第1层次:reset adb
第2层次:将掉线的模拟器关闭,重新开启
第3层次:关闭掉线的模拟器,关闭eclipse,打开任务管理器将adb.exe进程删掉。然后重启Eclipse和模拟器
02_四大应用组件之Actvity |
- 1. Activity的理解:
- 2. Intent的理解
关于IntentFilter
- 3. Intent的使用:(创建、携带数据、读取数据)
1.创建:
显式意图: Intent intent = new Intent(Context context,Class clazz);
隐式意图:Intent intent = new Intent(String action);
2.携带数据:
intent.putExtra(String key,Xxx value)
intent.setData(Uri uri);
3.读取数据:
intent.getXxxExtra(String key);
在Intent内部维护了一个HashMap<String,Objec>
- 4. Activity的使用:(声明、启动、结束)
1.声明(如何创建一个Activity)
①创建一个继承于Activity的子类
②在AndroidManifest.xml文件中注册此组件。 <activity name="全类名" label=""> </activity>
③在res-layout-提供一个布局文件:xxx.xml
④ 在Activity的子类中重写的onCreate()中加载布局文件:setContentView(R.layout.xxx);
2.启动:
一般启动: startActivity(Intent intent)
带回调的启动: startActivityForResult(int requestCode,Intent intent)
>接收回调数据的回调方法: onActivityResult( int requestCode, int resultCode, Intent data)
3.结束:
一般结束:finish();
带结果的结果:setResult(int resultCode ,Intent intent);
finish();
- 5. Activity的生命周期
- 6. TaskStack和lauchMode
TaskStack任务栈结构:
关于Activity的启动模式:LaunchMode
在AndroidManifest.xml中的<Activity>的属性中设置启动模式。
- 总结:设置监听的四种方式:
以给Button设置点击的监听为例:
方式一:提供一个接口的匿名实现类的匿名对象
btn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
//点击button需要完成的操作
}
});
方式二:
btn.setOnClickListener(this);
接着需要当前的Activity实现View.OnClickListener接口,需要当前的Activity重写onClick(View v){}
方式三:
在布局文件中,声明<Button>时,提供一个属性:onClick= "call";
回到布局文件对应的Activity中,提供一个方法:public void call(View v){ }
方式四:提供一个接口的匿名实现类的对象
在当前的Activity中声明一个属性:
private View listener = new View.OnClickListener(){
public void onClick(View v){
//点击button需要完成的操作
}
};
然后
btn.setOnClickListener(listener);
——————————————————————————————————
考虑一下回调方法的参数的判断:
方式一:
if(v == btn1){
}else if(v == btn2){
}...
方式二:
switch(v.getId()){ //byte short char int String 枚举
case R.id.btn1:
break;
case R.id.btn2:
break;
....
}
- 7. 应用练习: 打电话与发短信
1). 功能描述:
1) 点击”打电话”: 进入拨号界面
2) 长按”打电话”: 直接拨打电话
3) 点击”发短信”: 进入编辑短信界面
_____________________________________________
4) 长按”发短信”: 直接将短信发送出去
2). 技术点:
① 布局的搭建。在ViewGroup中还可以嵌套ViewGroup
② 给必要的视图对象设置点击或长按的监听事件
③ 如何在当前应用中调用其它应用。 需要使用隐式意图。
④ 数据的携带。putExtra(String key,Xxx value) (--->Xxx getXxxExtra(String key)) ,setData(Uri uri);
⑤ 权限的声明:需要在功能清单文件中,设置当前应用的权限。
3). 总结:
1). 实现一个简单功能的应用的步骤:
①创建一个应用,修改一下minsdkVersion
②完成布局的搭建
③回到Activity中,加载布局文件:setContentView(R.layout.xxx)
④获取并初始化视图对象 并对必要的视图对象设置监听
⑤完成监听需要做的相应的功能
2). 使用隐式意图启动系统应用的界面
首先打开要启动的某一个应用的界面A,通过logcat,使用ActivityManager进行过滤,查看打开的当前界面的信息:当前的Activity类以及所声明的包名。
其次,找到应用程序的源码,在其功能清单文件中,搜索当前的Activity,找到其声明的<intent-filter>中的action。
最后,在需要通过某个界面启动A的界面中,创建一个隐式意图,使用找到的action。启动一个新的Activity即可。
3). 权限:
<!-- 拨打电话的权限 -->
<uses-permission android:name ="android.permission.CALL_PHONE" />
<!-- 发送短信的权限 -->
<uses-permission android:name ="android.permission.SEND_SMS" />