第一天
来源:互联网 发布:mac 的破折号 编辑:程序博客网 时间:2024/06/11 00:15
1.1G-4G的介绍
- G generation
- 1G 大哥大 只能进行通话 不能发短信
- 2G wap.baidu.com 支持上网 彩信业务
- 3G 沃 www.baidu.com 7.2M/s
- 4G lte long time evolution 100M/s
- 主要区别 速率的不同
- 5G 华为 大公司卖标准 小公司卖产品 arm:并不生产处理器 10G/s
2.Android操作系统介绍
安迪鲁宾研发
3.Android历史介绍
Android版本对应api级别 3.0 ---112.3----102.2 ---8
4.Android系统架构(重点)
- 第一层:应用层Application(开发者开发)
- 第二层:应用框架层Application Framework(API)
- 第三层:Android底层类库层 Libraries、Dalvik虚拟机(C,C++开发,很多库是谷歌那过来别人的东西进行改进后直接只用的
第四层:linux内核层 linux kernel
Android试运行在Linux内核基础之上的。 比如:系统应用闹钟,在闹钟被触发要响铃的时候,首先应用层的闹钟应用调用了应用框架层的API,API再调用第三层的类库层,类库层再调用最底层的音频驱动,驱动来控制硬件发声。
5.两种虚拟机的不同 (重点)
#一:架构不同:JVM使用栈架构;
- JVM把所有的指针(内存地址)都保存在了栈里边;
- Dalvik使用的是寄存器,数据是加载到CUP的寄存器上的。
- Dalvik把所有的指针(内存地址)都保存在了寄存器中。也就是说所并不是把数据(例如图片)放入了寄存器。
二:JVM加载的.class文件,
- .java被编译成.class文件,然后直接运行。或者把所有的.class文件打包成.jar包后再运行。每一个.class文件都包含了一个文件头信息
Dalvik加载的是.dex文件,对内存的分配情况做了优化。
- .java被被编译成.class后,再把所有的.class文件编译成一个.dex文件,然后再运行。
把所有的.class文件编译成一个.dex文件后,最起码少了很多个文件头信息。
- .java被被编译成.class后,再把所有的.class文件编译成一个.dex文件,然后再运行。
jvm: sun oracle
dvm: 谷歌
jar包和.apk都可以用压缩文件来打开
Android的新虚拟机ART
Dalvik:在应用每次运行的时候,字节码都需要通过即时编译器转换为字节码,然后再运行,极大的拖慢了应用的运行效率 ART:应用在第一次安装的时候,字节码会预先编译成机器码,然后保存到本地,使之成为真正的本地语言,应用的启动和运行速度会显著提升ART目前不稳定,所以很多厂商把ART给去掉了。开启ART:进入开发者模式,选择运行环境切换即可。(会重启手机)
6.SDK下载
day01资料目录中有下载的截图SDK:Software Development Kit,软件开发工具包SDK包含以下内容: Eclips+ADT插件(最新的开发工具变成了Android studio) Android SDK Android Platform-tools 最新的Android开发平台 最新的模拟器镜像其中后四条是无论用什么开发工具(Intelij、Android studio、eclipse)都必须要使用的。www.android-doc.comAndroid中文API完全翻版英文版,但是汉化率不高
6.1SDKManger的使用
- 可以在里面管理SDK版本的下载和卸载。
- 双击打开SKDManager,
- Tools目录下的AndroidSDK Tools是SDK工具集,必须下载安装,下载后保存在tools目录里边包含了模拟器和9.path工具;
- AndroidSDK Platform-tools是SDK平台工具集,也是必须下载安装,下载后保存在Platform-tools目录里边包含了ADB工具。
- Android4.3(API 18)目录下:
- SDK Platform:SDK平台,在每一个安卓版本中都有一个SDK Platform,只有把对应的SDK Platform下载下来才可以使用当前的版本开发,下载后保存在platforms目录中;
- Documentation for Android SDK帮组文档;
- 所有带Intel或者ARM的都是指使用哪个CPU架构。下载下来后保存在system-images目录下。
- sources for Android SDK:Android API源码,下载后保存在sources目录中;
- Extras目录:
- Android Support Library:安卓支持类库,下载后保存在extras目录中;
- HAXM:英特尔加速器,解决模拟器运行慢的问题,下载后需要单独安装;双击即可。
- 安装过程中遇到了 is not trun on,需要去bios里边开启改功能,遇到了is not support说明你的电脑不支持,就放弃吧。
- SDK目录
- add-ons:存放高级应用的API的文件
- build-tools:构建工具
- docs:开发文档
- extras:存放依赖的第三方的包
- platforms:各个平台的文件
- adb:android debug brigde android调试桥
- sources:API的源代码文件
- system-images:系统的镜像文件
- tools:工具文件
7.模拟器的简介及创建
Keybord: Hardware keybord present:模拟器上的返回键是实体按键,一般要勾上,否则模拟器上想返回就只能用快捷键了
Skin: Dispaly a skin with hardware controls:皮肤,勾上。
- Front Camera:模拟器的前置摄像头不能用
- Back Camera:None,不能用,Emulated:虚拟摄像头,可以获取到摄像头的属性,不能拍照,Webcam:调用电脑的摄像头,可以拍照;
- memory options:RAM:模拟器运行内存;VM Heap:模拟器堆内存大小
- Internal Storage:手机自带存储空间大小;必须填写
- SD Card:模拟器内存卡空间大小,不填认为没有;
- Emulation Options:Snapshot:存储快照,类似于Windows的休眠功能;Use Host GPU:使用本地的GPU,勾上的话模拟器运行会快,但是这两个一般都不选择勾上。
8启动模拟器:
- Scale display to real size:对模拟器进行缩放显示Screen Size不用管;Monitor dip:输入不同的数值,Scale会显示出来以当前的多少倍进行了缩放。
Wipe user data:勾上的话每次启动该模拟器都会恢复出厂设置;
VGA 480* 640
- QVGA 240*320
- HVGA 320*480
- WQVGA 240*400
- FWVGA 480*854
- WVGA 480*800
- AVD: Android virtual Device
8.创建部署Android项目
DDMS:Device Definition Monition Service
9.Android项目目录结构
- src:项目的java代码
- gen
- buildConfig:自动生成,应用是否可以debug,不要更改;
- R:保存项目中使用的资源的id,自动生成,不要更改;
- Android.jar:导入这个包,应用才可以使用Android的api,在创建目录的时候选择的编译版本即是此对应包;
- libs:存放第三方jar包
- assets:资源文件夹,存放视频或者音乐等较大的资源文件,这里边的资源并不在R文件中生成ID,使用IO流来使用;
例如file://android_asset/xxx.3gp - bin:存放应用打包编译后的文件
- res:资源文件夹,在这个文件夹中的所有资源,都会有资源id,读取时通过资源id就可以读取,注意文件名称不能一样,哪怕后缀名称不一样也不行,即不能出现xx.jpg和xx.png的情况。因为R文件读取的是文件名而不是包含后缀的文件名。
- layout:布局文件夹,保存布局文件,Android中所有布局文件都是xml文件
- menu:菜单配置文件夹,保存菜单的配置文件,决定菜单的样式
- values
- strings:字符串资源文件,用来定义字符串资源的
- dimens:长度资源文件,用来定义长度资源
- style:样式和主题资源文件
10.清单文件
- package:应用在系统中的唯一识别
- versionCode:应用的版本号,系统、应用市场识别;
- versionName:公司内部识别号码,随意定义
- application节点下的label是应用管理程序里边显示出来的应用名字,icon是应用管理程序里边显示出来的图标
- activity(应用的入口)节点下的label是应用的名字,更改了它,手机上应用的名字就变了,同样这个icon才是应用的图标;
- project.properties 项目环境信息,更改里边的数值就是更改了编译版本(必须下载了改版本的platform),与项目目录结构的Android.jar是对应的。一般是不需要修改此文件,
11.应用的安装过程
- 第一步:把APK文件复制(下载)到手机里边
- 第二步:系统安装APK
- 第三部:系统自动删除复制到手机里边的APK文件
打包过程
- 一:编译Java文件,打包资源文件;
- 二:生成APK文件
- 编译.dex文件
- 打包未编译的资源文件;
- 打包清单文件
- 三:签名文件
把Android的应用程序打包成一个.apk文件,.apk文件可以安装在手机或者模拟器上。如果是签名打包,是在打包的过程中,对文件进行了加密。
投放到Android市场上的应用软件必须签名。
aapt: Android application package tools 打包apk文件
签名:
adb :Android debug bridge
安装路径
- 第三方应用保存路径:data/app
- 系统应用保存路径:system/app
- data/data/包名文件夹:系统为每一个应用提供的一个专属空间
12.DDMS的使用
无
13.ADB进程&指令
— 常见命令:adb devices 列出所有的设备adb shell 挂载到linux的空间 可以执行liux指令adb install xxx.apk 如果有多个设备,我们可以指定设备 adb install –s emulator-5554 D:/xxx.apkadb shell 挂载到linux空间adb push 把文件推到手机里 adb pull 把文件从手机里拉出来ctrl + F11 横竖屏的切换
14.电话拨号器(重点)
开发项目的步骤:1、理解需求,弄明白需求后在写代码;2、在Android工程中设计UI界面;3、代码实现业务逻辑;
电话拨号器的代码:
//初始化布局文件中的控件 et_phone = (EditText) findViewById(R.id.et_phone); Button bt_call = (Button) findViewById(R.id.bt_call); //获得EditText控件里面的数据 bt_call.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //拨打电话号码 //获取数据框中的电话号码 String phone = et_phone.getText().toString().trim(); //创建一个拨打电话的意图 Intent intent = new Intent(); //设置拨打电话号码的动作 intent.setAction(Intent.ACTION_CALL); //设置拨打的电话号码 intent.setData(Uri.parse("tel://"+phone)); //开启拨打电话的意图 startActivity(intent); } });
15.四种点击事件
(1)采用内部类的方式去实现OnClickListener (2)匿名内部类 (3)当前类imp OnClickListener (4)onclick 1、设置按钮的单击事件的监听器,创建匿名内部类 bt_call.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //拨打电话号码 String phone = et_phone.getText().toString().trim(); Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); System.out.println("phone="+phone); intent.setData(Uri.parse("tel://"+phone)); startActivity(intent); } });2、创建一个内部类private class MyOnClickListener implements OnClickListener{ @Override public void onClick(View v) { //拨打电话号码 String phone = et_phone.getText().toString().trim(); Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); System.out.println("phone="+phone); intent.setData(Uri.parse("tel://"+phone)); startActivity(intent); }}//别忘记给按钮添加一个单击事件的监听器bt_call.setOnClickListener(new MyOnClickListener());3、在布局文件中给按钮添加一个单击事件的响应方法,然后在代码中实现这个方法(1)在布局文件中给按钮添加一个单击事件的响应方法 <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="拨打" android:id="@+id/bt_call" android:onClick="call" />(2)在代码中实现这个方法//view 表示的是按钮这个视图public void call(View view){ //拨打电话号码 String phone = et_phone.getText().toString().trim(); Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); System.out.println("phone="+phone); intent.setData(Uri.parse("tel://"+phone)); startActivity(intent); }
16.五种布局
- 线性布局(重点) 分水平和垂直2种
- 相对布局:各个组件都是按照相对位置来摆放。
- 帧布局: 一层一层绘制
- 表格布局
绝对布局 已经被谷歌废弃
工作中常用的就是各种布局的嵌套使用
0 0
- 第一天
- 第一天
- 第一天~
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- #第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- WSDL
- 将dicom的ct值归一到(0,255)
- hdu 5312 Sequence(数学推导——三角形数)
- opengl es2.0 使用字符偏移图渲染文字
- 要在当前页面刷新,触发点击事件才可以显示效果的问题
- 第一天
- 获取登陆信息
- Go语言beego框架环境搭建
- xcode配置小知识
- MAC OSX配置maven以及遇到问题:Unsupported major.minor version 51.0
- #学习笔记#(9)JavaScript书写规范
- 点击按钮控制div前后运动——定时器应用
- VisualVM无法运行提示找不到java
- 加分二叉树