ANDROIDDE 的体系结构
Dalvik VM 和 JVM 的比较
ADT
Android develop tools,安卓开发工具(eclipse的插件)
最新版本23.xxx 不好用。默认强制使用一些新的控件。
SDK
standard develop kits 标准开发工具包
SDK的目录结构
- add-ons
附加组件,放在一个额外的工具。google api,提供google地图的jar包
- build-tools
编译工具,谷歌sdk升级后采用的目录 - docs
文档目录。开发文档。 - extras
附加工具 support 文件夹,提供向下兼容的jar包。
和额外的驱动,摄像头驱动,手机驱动 - platform
开发平台 - platform tools
开发的工具 - sample
实例代码 - source
源代码 - system-image
系统镜像 - tools目录
开发工具
AVD
android virtual devices 模拟器屏幕分辨率
VGA: 480 * 640 QVGA: 240 * 320 HVGA: 480 * 320 WVGA : 480 * 800 FWVGA : 480 * 854android工程的目录结构
- src
源代码
- gen
工具自动生成的代码
BUildconfig 调试的开关 默认开启
R.java 很多的静态的内部类 - android.jar
开发用的jar包 - android dependence
依赖,向下兼容的依赖jar包 - assets
资产目录 存放一些别的类型的文件 - bin
eclipse工具编译的文件夹 - libs
应用程序开发用的jar包 - res
应用程序的资源 - androidmanifest.xml
清单文件
分辨率区别
l - low 32*32 m - middle 48*48 h - high 72*72 x - xtra 96*96 xx - 超大 144*144 32:48:72:96:144 2:3:4.5:6:9应用程序打包安装的流程
- javac.exe 把.java的文件编译成.class
- 把.class转成.dex文件
\sdk\platform-tools\dx.bat
- 把res目录下的文件和应用程序清单文件manifest.xml打包到一个apk
- 把apk上传到手机并且安装运行
adb
android debug bridge 安卓调试桥
常见的adb指令
adb install xxx.apk
安装一个apk -r 覆盖安装
adb uninstall <包名>
卸载一个apk,包名是应用程序的唯一标示,一个手机里面不可能有两个应用程序包名相同。
adb shell
直接来到手机操作系统的Linux命令行
adb push
推:把电脑上的一个文件导入到手机
adb push 电脑上的文件 手机的路径adb pull
拉:把手机的文件导入到电脑
adb pull 手机上的文件 电脑上的路径
ddms
adt插件的功能,提供一个调试的视图
dalvik debug manager system
点击事件的四种写法
- 内部类实现接口 new 实现类
private class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
//按钮被点击的事件
System.out.println(“给110打电话”);
//松耦合
//机器代码–>c语言–>c++—>java(c+++)—>c#–>自然语言
//意图。Intent
//泡茶 泡妞 打人 打酱油
Intent intent = new Intent();
//设置动作 拨打电话的动作
intent.setAction(Intent.ACTION_CALL);
//设置数据Uri 统一资源标识符 URL统一资源定位符 网络路径 http ftp rstp
//itheima://56
intent.setData(Uri.parse(“tel://110”));
//激活动作
startActivity(intent);
}
} 匿名内部类
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//点击事件} });简单点击事件的实现 一般都用匿名内部类
让当前的activity实现接口
extends Activity implements OnClickListener
如果按钮非常多,建议使用这种方法在布局文件中配置点击事件的方法
上课写demo
android应用程序开发的步骤
- layout写ui布局
- src下写java代码
- 查找关心的控件
- 写点击事件,获取数据
- 编译运行查看结果
常见ui布局
线性布局 LinearLayout
重要属性 android:orientation=”horizontal” 水平排列
android:orientation=”vertical” 垂直排列
android:layout_width=”0dip”
android:layout_weight=”1” 权重相对布局 RelativeLayout
绝对布局 AbsoluteLayout
过时 机顶盒
表格布局 TableLayout
帧布局 FrameLayout
android:layout_width:表示TextView的宽
android:layout_height:表示TextView的高
fill_parent:表示与父元素宽和高相同
match_parent:表示与父元素宽和高相同
wrap_content:表示宽和高与文字宽和高相同,即宽和高能正好容纳文字
android:text:表示在TextView中需要显示的内容
ndroid:textSize:表示设置TextView中文字的大小
android:orientation=”vertical”:表示线性布局的方法性:vertical垂直,horizontal水平,只属于线性布局
android:hint=”这是提示信息”:文本框的提示信息,一旦输入内容后,提示信息消失
android:id=”@+id/numberEditText”:为View组件取一个唯一的名字
android:layout_toRightOf=”@id/hahaButton”:button在XXXX的右边
android:layout_alignParentTop=”true”:button在窗口的上边
android:layout_alignParentRight=”true”:button在窗口的右边
android:layout_centerHorizontal=”true”:button在窗口水平中间
android:layout_centerVertical=”true”:button在窗口垂直中间
android:maxLength=”4”:最多输出4个字符
android:inputType=”textPassword”:输入密码时,用*替代
android:layout_x=”6dp”:相对于父窗口的x坐标
android:layout_y=”4dp”:相对于父窗口的y坐标
android:gravity=”center”:让图片原样居中
android:scaleType=”center”:让图片缩小居中
android:columnCount=”3”:网格布局中列数,超过3列,自动换到下一行
android:layout_columnSpan=”2”:网格布局中,跨二列
android:layout_gravity=”fill_horizontal”:网格布局中,水平填充
android:layout_rowSpan=”2”:网格布局中,跨二行
android:layout_gravity=”fill_vertical”:网格布局中,垂填填充
android:lines=”3”:默认行数,不写的话,默认1行