1.android是什么
2005
google收购了ANdroid lnc. (有可能变成 google mobile)
开始 Dalvik VM的研究
2007
开发手机联盟成立
Sdk1.0预览发布
2008
Google 第一届手机开发者大赛
Google 第一个亲儿子 T-Mobile G1发布
SDK1.01 发布
Android 开发源代码(Apache License)
//------------android 是什么
手机设备的软件栈,包括
一个完整的操作系统
中间件
关键的应用程序
[/code
android 分层
应用层 一用框架层 系统运行库层 linux 内核层
//---------android -------------------
底层是linux内核(android (iso系统)
安全管理
内存管理
进程管理(进程之间通信管理)
电源管理
硬件驱动(摄像头,键盘驱动,wifi驱动,音频驱动)
通信管理
//--------Libraries--------------
(系统运行库层,函数库)中间层 将一些底层的操作给暴露出来
surface Manager :读写管理
Open GL |ES: 图形特效,以及一些3D模型的渲染
SGL:一个内置的2D图形引擎
Meda Framework:多媒体播放的一些类容.
Free Type: 安卓下的一些字体效果
SSL:位于TCP/IP协议和各层协议之间,为数据通信提供支持
SQLite : 移动平台下 有名 的 开源数据库管理
WebKit: 开源浏览器的引擎
libc: 标准的 c 的库函数
//-----------Android runtime-----------
Dalibike Virtual Machine: 为了优化了 jvm 侵犯了版权 google重写了运行时
JVM :window
Core libraies:核心库
//-----------application FrameWork------------ android SDK
1.Activity Manager: 活动的管理 (打开 ,关闭一个界面)
2.window Manager: 窗体管理者 (弹出,关闭 对一个对话框)
3.Content Providers:内容数据的共享者
4.View System:制定控件运行的先后关系
5.package Manage:程序的管理器
6.TelePhone Manage: 管理手机上的打电话 发短信
7.Resouce Manager: 资源管理
8.Location Manager:GPS 获取位置
9.Notification Manager: 短信通知等
//------------Appliactions-------------------- 手机只带的应用
home;桌面
phone:拨打电话
brower:浏览器
game: 游戏
//------------比较-------------
JVM Dalvik VM
.java > .class > .jar .java > .class > .dex >.odex
基于栈的架构 (内存) < 效率 基于寄存器的架构(存在CPU中的一小块内存)
不支持部分java库, Swing 和AWT
2.android 开发环境的搭建
1.下载 与系统 符合的 JDK http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-6u3-jdk-6u29-downloads-523388.html
记住要配置 JDK环境变量
2.下载 Android SDK ADT 套件 (包含了eclipse工具啦,这样就不用我们在myeclipse中配置这配那的了)
http://developer.android.com/index.html -->get SDK
3.下载后 找到 SDK Manager.exe 运行下 后要下载一些工具 这个 会很慢,一般都不会成功,因为 google中 地址中 "-" 解析不出来
这里 有个办法:
所以修改 hosts 文件
C:\Windows\System32\drivers\etc -->hosts--> 加入
74.125.237.1 dl-ssl.google.com
这样 就可以更新下来了啦
//使用 android SDK Mansger 来下载一些 需要的工具 平台,支持库 驱动等
1.Document For Android SKD :帮助文档
2.SDK Platform: SDK平台 下载后, 才能创建这个平台的模拟器,和编译android 代码
3.Samples for SDK : SDK 的实例代码
4. ARM : 处理器产商, 处理器的架构 不生产处理器 (摩托罗拉,三星) 95%使用 arm 处理器
Intel X86 : lenovo v880 用的比较少 (window 平台上 使用后,模拟器速度会快点)
MIPS : 有流行的趋势
上面都是 cpu 模拟器
5.Gooogle API: 比如 google 地图 (mapview) 等
6.Sources for Android SDK : 源码
----Extras
1.android Support libary : 新的控件 支持 低版本的 用户兼容的 支持库
2.google adWeb ads SDK : 广告的 在应用中嵌入 广告 (使用他 赚钱)
3.Google Play Service:
4.Google Play billing Library: 需要钱的应用 就往帐号上大钱的这样一个支持库
5.Google web Driver: 模拟器的 照相机 使用 电脑的 摄像头的驱动
6.Google USE driver: 插上手机到 电脑上, 需要的驱动
//------创建 模拟器
打开 android2\adt-bundle-windows-x86_64-20130219\eclipse eclipse.exe
里面就可以创建模拟器了
有个 手机 图标 :里面就可以创建 不同平台 不同频宽的 模拟器
打开后就可以设置里面 语言啦 你知道的
//----------启动中出现的一些问题
//--1.eclipse 打开就报错: 应该即使 JDK 安装的版本 不符合你系统的要求
比如 64位系统 32 位的jdk
//--2.点击 start 模拟器无法运行
invalid command -line parameter: Files\ANdroid\android-sdk\tools/emulator-arm.ext: Hint:usr @foo to ....
方法一: 检测 JDK 安装的路径是不是有中文 有 就就该
方法二: 添加 Android_SDK_HOME 环境变量 : 指向 android SDK目录 然后重启
Android_SDK_HOME :D:\TDDOWNLOAD\android2\adt-bundle-windows-x86_64-20130219\sdk
//--3. 之前 开启过 模拟器 不知道什么原因 这次启动不了
start 弹出窗下出现
WARNING: SD Card image already in use
WARNING: Cache partition already in use ...
其实就是 出现共享数据 持久化 的问题(
这次启动的模拟器还是用的之前模拟器的数据)
每个模拟器都对应系统中个一个文件
C:\Users\Bin\.android\avd\HVGA.avd
只要删除 文件夹里面的 把里面的[文件夹: :twisted: ] 删除掉就可以 (lock)
//--4 模拟器没有注册网络 (使用的桥连接 连接window系统的网络)
修改 本地连接中的 IP只用 自定义Ip DNS服务器
//--------SDK 目录中 常见工具的使用
D:\TDDOWNLOAD\android2\adt-bundle-windows-x86_64-20130219\sdk
1.add-ons: 存放一些工具 ,驱动
2.extras: 附加的一些工具,支持一些jar ,web摄像头的 驱动
D:\TDDOWNLOAD\android2\adt-bundle-windows-x86_64-20130219\sdk\samples
3.samples: 实例代码 (apiDemo 这个 里面的例子) 可以在模拟器的 API demo 看到效果
里面还有很多游戏 和应用
示例代码也是分平台的 也需要在 Android SDK Manager 中下载后才有
D:\TDDOWNLOAD\android2\adt-bundle-windows-x86_64-20130219\sdk\platforms
4.platform: 开发支持的平台
D:\TDDOWNLOAD\android2\adt-bundle-windows-x86_64-20130219\sdk\platform-tools
5.platform-tools:平台相关的工具
在 cmd 中 运行里面的工具命令
adb.exe :android程序的调试桥(window+ ,360手机助手 等都是这个东西,只是换了外貌)
//------adb.exe 的使用
1.到网站上 下载一个 apk 的程序 就可以使用 adb 来安装
http://www.appchina.com/ 到这个网站上去下载
com.yingyonghui.market_825_30024412.apk 讲这个工具进行安装
cmd --cd d: D:\TDDOWNLOAD\android2\adt-bundle-windows-x86_64-20130219\sdk\platform-tools
adb install com.yingyonghui.market_825_30024412.apk --就可以看到模拟器中多了一个安装程序
adb uninstall com.yingyonghui.market(包名) 就可以卸载了
(也可以通过手机里面应用管理卸载)
adb devices 查找所有的 模拟器 (有多个时候有用)
adb -s emulator-554 inatall com.yingyonghui.market_825_30024412.apk 将这个应用安装到指定的emulator-554 这个模拟器上
adb -s emulator-5554 push file:///C:/Users/Bin/Desktop/getface.jpg /sdcard/a.jpg
--\将桌面的图片 导入到 模拟器中
adb -s emulator-5554 pull /sdcard/a.jpg c:\aa.jpg
--将手机里的图片导入到 桌面
ctrl+11 就会变成 横竖屏幕
小键盘的 9 和 7 也可以借还 横竖屏
--配置 adb 的环境变量
讲 adb的路径 添加到 path路径中去就可以了
如果 我们电脑上装了 windows+ 或者 360手机安全卫士的 如果 adb 的版本不同 会出现给一些奇怪的问题 所以 建议卸载 第三方软件
emulator-5554
emulator-5556
是两个模拟器的 端口号 , 可以相互之间打电话 和 发短信
//--接下来就来创建我们第一个 HelloWorld 工程 哈哈
不用说啦
file--> new -->Android Application Project-->
Application Name: 安装到手机上的应用名称
Project Name:项目名称
Package Name:包名
Minimun Required SDK :支持最小版本的 应用 一般为 2.1 2.2
Target SDK:支持最大版本的额 应用 目前 4.2
Compile with :编译用的 SDK 版本
Theme:是否使用的 自动布局
//-->next
Mark this project as a library: 标记该应用为 一个 项目中的 jar
Create activity: 创建一个窗体
Create custom launcher icon: 创建一个自定义 图标
Working sets: 此项目需要引用的 其他项目
//-->next
clipart :选择自定义的一个图片
//-->next
Create Activity:创建一个窗体 选择一个系统自定义好的窗体
//--next
Activity Name:窗体的名称
Layout Name:布局名称
Navigation Type: 导航类型
//--OK 创建好了
// ------解释下 项目中的 各个文件的 作用
assets 目录:资产目录,存放一些应用程序的资源文体
Android 4.2.2 :使用的 android SDK 版本
libs:三方的支持的jar 包,会自动添加到build path里面
res:应用程序的资源文件
drawable:存放 图片资源
AndroidManifest.xml: 应用程序的清单文件.
gen: 自动生成的 java文件目录
src: java的源代码的存放目录
main 函数
1.读取apk文件 中的 清单文件
软件安装的过程
0.开发工具帮助我们生成apk文件 (安装包)
1.拷贝一些文件到系统的某个目录(windows)
android: 讲apk文件拷贝到 /data/data/目录下 (创建一个文体)
/data/data/com.itheima.helloworld/ 保存数据
2.在系统的注册表里面配置一些信息(windows)
android: 下面两个文件就类似注册表文件
/data/system/package.xml
/data/system/package.list
<package name="com.itheima.helloworld" >
(eclipse 工具 DDMS视图中 就有直接导出这两个文件的 功能 其实就是 使用的 adb pull 命令)
变异资源文件 生存对应的R文件
打包 .java -->.class--> .dev
aapt: android appliaction package tools 工具
ddms: dalvik debug manager system
(eclipse 视图中有个 DDMS 视图
File Explorer:列出该设备中所有的文体 )