目录
[1].1G到4G的介绍(了解)
[2].Android系统及版本介绍
[3].Android系统构成(掌握)
[4].jvm与dvm介绍(了解)
[5].开发环境搭建(掌握)
[6].Android SDK Manager介绍(掌握)
[7].模拟器的简介及创建(掌握)
[8].DDMS透视图介绍(掌握)
[9].HelloWorld(了解)
[10].Android工程的目录结构(掌握)
[11].Android打包过程(了解)
[12].ADB指令练习(掌握)
[13].电话拨号器案例(掌握)
[14].按钮的四种点击事件(掌握)
[15].Android中常用布局(掌握)
[16].Android中单位介绍(掌握)
1.1G到4G的介绍
1G: 主要提供语音通话,代表性通讯手段是大哥大,只能语音,信号不好
2G: 提供语音+低速数据服务,基本是电话+短信,代表作是小灵通,gsm标准,wap.baidu.com
3G: 具备更快的网速,可以提供网页浏览、音乐等基本数据业务;可以上网了,www.baidu.com, 7.2M/s
4G: 具备100M/s以上的下载速度,能流畅承载视频、电话会议等业务;LTE标准。
5G: 华为投入6亿美金研究,传输速度可达到10G/s
2.Android系统及版本介绍
创始人为安迪·鲁宾,最初是研究数码相机的操作系统,2005年被Google收购后改编为移动操作系统。
Android的名称来源于创始人完的一款街机游戏中大瓢虫这一角色的名字。
Android的logo来源于厕所的男女标识。
首款搭载Android系统的手机为T-Mobile G1。
安卓的版本名以美食命名,常见版本号为:
2.3.3--10、3.0--11、4.0--14、4.1.2--16、4.3.1--18、5.0.1--21、6.0--23、7.0--24、8.0--26、9--28
3.Android系统构成(掌握)
四层架构:Linux层、函数库层、框架层、应用层
1.最上层:应用层;Applications
Home:首页应用
Contacts:联系人应用
Phone:电话应用
Browser:浏览器应用
。。。。其他应用
2.第二层:框架层; Application framework
Activity Manager:界面管理者
Window Manager:窗口管理者
Content Providers:内容提供者
View System:控件管理者
Package Manager:包管理者
Telephony Manager:
Resource Manager:资源管理者
Location Manager:定位管理者
Notification Manager:通知管理者
3.第三层:函数库层,由C或C++写的;Libraries、Android Runtime
Libraries:系统的函数库,都是由一个个开源项目组成的
Surface Manager:与显示相关的开源库
Media Framework: 多媒体相关的开源库
SQLite:安卓下的嵌入数据库
OpenGL ES:专门用作游戏和3D的开源库
FreeType:字体相关的库
WebKit:浏览器的内核
SGL:2D图形引擎库
SSL:安全相关的库
libc:
Android Runtime:ART模式
Core Libraries:核心库
Dalvik virtual Machine: google自已研发的安卓虚拟机
Android 4.4以前安卓手机的应用程序均在Dalvik Java的虚拟机上运行,这种运行模式还要依靠一个编译器来实现与应用程序的沟通,应用程序每次运行时都需要将程序内的代码转变为机器码才能运行,造成了耗电快、占用内存打、卡顿的现象。为对标iOS,Google工程师搞了一个ART模式。
ART模式:在安卓应用程序时,自动对程序进行代码预读取编译,让程序直接编译成机器语言,免去了Dalvik模式下时时转换代码,实现了高效率、省电、占用更低的系统内存、系统运行流畅;但缺点是安装应用程序要比普通的Dalvik模式时间更长一些、占用的空间也更大一些。
4.最底层:Linux,操纵硬件;Linux Kernel
Display Driver:与显示相关的驱动
Camera Driver: 与相机相关的驱动
Flash Memory Driver:与闪存相关的驱动
Binder(IPC) Driver:与相关的驱动
Keypad Driver:与键盘相关的驱动
WiFi Driver:与WiFi相关的驱动
Audio Drivers:与音频相关的驱动
Power Management:电源管理
层级间调用示例:
第一层应用层有一个闹钟要响,会调用第二层框架的Notification管理者,然后由第二层调用第三层的Media多媒体库,由第三层调用第四次的AudioDrivers驱动来操纵硬件发出声音
4.jvm与dvm介绍
jvm:java虚拟机,是sun公司研发的,主要作用是将java代码转换为机器识别码,一开始Android使用jvm,后来被sun公司告上法庭,Google才开始研发dvm。
dvm:2007年11月,Google开发Android平台虚拟机Dalvik vm
jvm与dvm的区别:
jvm基于栈(普通的内存)的架构,编译后的文件格式为:.java -> .class -> .jar
dvm基于寄存器(CPU里的内存)的架构,编译后的文件格式为: .java -> .class -> .dex -> .odex
Google工程师将所有的.class文件合并为一个.dex文件,以减少文件目录,提升虚拟机速度
5.开发环境搭建
eclipse: IBM公司使用java语言开发的,安装eclipse之前需要安装jdk
Android Studio: Google公司开发的,要求4G以上内存,i5以上处理器才可以用
6.Android SDK Manager介绍
doc:存放文档的目录
source:资源文件夹
platform文件:
里面存放的是Android的开发版本,一般会基于一个比较新的稳定的版本来开发
platform-tools文件夹:
dx.bat:通过这个工具将所有的.class文件变成了一个.dex文件
aapt: Android应用打包工具
adb: Android调试桥
intel: 主要针对pc机和笔记本生产cpu
arm: 主要生产cpu标准的,inter生产的cpu要遵循arm制定的标准
杂牌手机官网上找不到驱动,可以安装豌豆荚、手机助手等安装驱动进行真机调试。
7.模拟器的简介及创建
创建一个模拟器,名字自定义,设备和Android版本自己选、CPU/ABI选inter或ARM(AMD处理器选)、RAM占用电脑内存、VM Heap虚拟器给每个应用分配的空间(默认16M)、Internal storage模拟器内部存储空间、SDCard外插sd卡空间。
Android版本对应api级别:
Android_2.3 ~ api_10
Android_3.0 ~ api_11
Android_4.0 ~ api_14
Android_4.1.2 ~ api_16
Android常见分辨率:320*480、480*800、1280*720
ROM: 只读存储器,相当于电脑的一块微小的硬盘,断电后数据不丢失
RAM: 相当于电脑的内存条,断点数据丢失
8.DDMS透视图介绍
DDMS在右上角,点击可以打开
点击左边列表运行中的模拟器设备,点击上方的照相机按钮,可以下载模拟器中的页面截图
点击File Explores选项,可以看到该模拟器下手机的系统目录
data-app路径下是很多系统的apk
data-data路径下是很多系统的包名
mnt-sdcard路径下是手机的SD卡目录
在fileExplorer选项下的右上方可以将资料导入或导出模拟器
点击Emulator Con选项可以模拟打电话、发短信、经纬度、声音、速度等
9.HelloWorld
左侧空白地方邮件New-Project选择Android Application Project
输入appName和PackageName,选择最小版本、当前版本、支持版本;主题Theme选None
选择创建项目路径
选择Blank Activity创建一个空的项目
主Activity名称采用默认的MainActivity
10.Android工程的目录结构(掌握)
src文件夹:存放源码
gen文件夹:
R.java文件:自动生成的文件,不要修改;可以理解为一个字典,供查询资源
Android 4.1.2文件夹:安卓开发基于的jar包
assets文件夹:资产目录,存放音视频文件、xml文件等
bin文件夹:自动生成的文件classes.dex文件:将所有的.java文件变为一个.dex文件
myhelloWorld.apk文件:apk文件
res文件夹:资源文件夹,包括图片资源、布局资源、字符串资源
资源一般复制粘贴到相应的目录中即可,在res文件夹下添加一个资源就会在R.java文件中增加一条引用
drawable目录:一般存放图片,多个drawable文件夹是做适配用的
layout目录:布局资源
menu目录:菜单资源
values目录:
string.xml文件:字符串资源
其他的values目录,也是做适配用的
AndroidManifest.xml文件:安卓的清单文件,需要配置安卓下的四大组件
四大组件:activity、广播接收者broadCastReceiver、服务service、内容提供者ContentProvider
package:当前应用的包名
versionCode:当前应用的版本
versionName:对当前应用版本的描述说明,就是一个字符串,可以随意的改
minSdkVersion:最小适配版本
targetSdkVersion:目标的版本
Application:代表的是当前的应用
allowBackup:是否允许当前应用备份
icon:@drawable/ic_launcher; @理解为R.java文件,意思是在R.java文件中找drawable路径下的ic_launcher,ic_launcher可以随便改,代表当前应用的一个图标,比如改为alizee(可以省略后面的.jpg)
label:默认标题
theme:主题
activity:一个活动页面
intent-filter:若有.MAIN、.LAUNCHER标识,表明是第一个被启动的activity
11.Android打包过程
编译代码-->变成class文件-->通过dex.bat工具变成dex文件-->通过aapt指令打包成.apk-->通过adb的安卓调试桥-->部署到device上
Android Project通过aapt指令打包成.apk
.apk包里面包括:
.dex文件(所有的.java文件--.class文件--.dex文件)
resources资源文件、AndroidManifest.xml清单文件、未编译的文件(assets资产文件等)
通过签名和ADB(Android debug bridge)部署到设备或模拟器上
12.ADB指令练习
Mac下配置Android ADB命令的方法:https://www.cnblogs.com/nebie/p/7282784.html
命令行常见指令:
adb kill-server 杀死app服务
adb start-server 开启app服务
adb install name.apk 快速安装一个Android应用
adb uninstall com.biyu6.myhelloworld 快速卸载一个Android应用(后面是应用的包名)
adb shell 进入手机终端
adb push test.txt /mnt/sdcard 将电脑里的test.txt文件推到安卓设备的mnt/sdcard文件夹中
adb pull /mnt/sdcard/p1.png 将mnt/sdcard文件夹中的p1.png文件拉到电脑中
13.电话拨号器案例
1.画UI界面
2.根据UI界面写业务逻辑,在mainActivity中的onCreate方法里面写逻辑
3.给按钮设置一个点击事件
4.自己定义一个类,来实现按钮所需要的点击事件
5.添加拨打电话的权限:
点击AndroidManifest.xml,选择Permissions--Add...--Uses Permission
name中选择需要的权限:android.permission.CALL_PHONE
14.按钮的四种点击事件
1.定义了一个内部类去实现按钮的点击事件
2.通过匿名类实现按钮的点击事件
3.让当前类实现OnClickListener 接口类型 (适合多个按钮)
4.在按钮的布局上加上一个onClick属性,在Activity里面定义一个方法,方法名和属性名相同
4种方法什么时候使用:
界面上只有一个按钮,用第2种或者第1种;
界面上有很多按钮,用第3种
最简单的是第4种,适合自己做小demo
最常用的是第4种和第3种
15.Android中常用布局(掌握)
常用 线性布局 和 相对布局
[1]线性布局:LinearLayout
在layout中右键New--Android XML File创建一个布局的xml文件
输入文件名后,Root Element选择线性布局LinearLayout
文件中的android:orientation="vertical" 可以选择是垂直线性布局,还是水平线性布局
语法:
android:layout_marginLeft="20dp" //控件距离左边20
android:layout_margin="10dp" //控件上下左右距离都为10
[2]相对布局:RelativeLayout
默认创建的activity_main.xml就是相对布局,相对于界面的左上角进行布局
语法:
android:layout_below="@id/btn_call"//该控件在btn_call的下边
android:layout_toRightOf="@id/btn_call"//且该控件在btn_call的右边
[3]帧布局:FrameLayout
一层一层的布局,用于视频播放的控制等常见
在layout中右键New--Android XML File创建一个布局的xml文件
输入文件名后,Root Element选择线性布局FrameLayout
代码:
android:layout_gravity="center"//设置水平垂直居中
[4]表格布局:TableLayout
新建一个TableLayout的xml文件
一个tabrow就代表一行,一个tabrow中有几个控件就代表几列
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="嘿嘿"
android:textColor="#ff007d"
android:textSize="18sp"
android:layout_marginLeft="30dp"
/>
</TableRow>
[5]绝对布局:AbsoluteLayout (已废弃)
新建一个AbsoluteLayout的xml文件
废弃的原因:距离x和y的距离是固定的,不利于以后的机型适配
android:layout_x="106dp"
android:layout_y="35dp"
应用场景:位置固定时使用
16.Android中单位介绍
dp:安卓中的pd用于间距,会自动根据屏幕进行适配;px不会根据屏幕进行适配
sp:文字的字体用sp
网友评论