380 likes | 1.29k Views
Android 开发基础. —— Android 开发环境及应用程序简介. 什么是 Android Android 的开发方式 Android 应用开发环境 Android 工具集. Android 是什么. Android 是什么 Android 是 google 的开放系统平台,主要应用在移动设备上。 Android 系统基本上锁定在手机平台上 Android 3.0 (Honeycomb) 为平板电脑特别开发的 Android 2.4 (Icecream) 支持手机和平板 由于 Android 的开源特性,设备制造商可以将其移植到自己的移动设备上。
E N D
Android开发基础 ——Android开发环境及应用程序简介
什么是Android • Android的开发方式 • Android应用开发环境 • Android工具集
Android是什么 • Android是什么 • Android是google的开放系统平台,主要应用在移动设备上。 • Android系统基本上锁定在手机平台上 • Android 3.0 (Honeycomb)为平板电脑特别开发的 • Android 2.4 (Icecream)支持手机和平板 • 由于Android的开源特性,设备制造商可以将其移植到自己的移动设备上。 • 自有一套软硬件使用标准,应用程序通用性好,硬件移植、开发简单。
Android是什么 • 使用Android的好处 • Android是免费的 • Android是开源的,可以根据自己平台的需要,自由定制系统 • Android是智能系统,有丰富的应用软件和应用软件开发商 • Android有非常友好的人机界面 • Android的兼容性及跨硬件平台特性 • Android采用linux kernel
Android是什么 • Google免费的Android,如何赚钱的? • 广告:免费的应用程序就有广告,google已收购admob公司。 • Market 收费应用程序 • 增值服务及流量收费。Android手机绑定了google的一系列服务,如地图,搜索,gmail等。 • 推出一个商店向Android用户销售音乐和视频 • Google CEO Eric Schmidt认为,Android手机的使用量最终将达到10亿部,google每年从每个android用户身上赚取10美元并不难
什么是Android • Android的开发方式 • Android应用开发环境 • Android工具集
Android的开发方式 • Android的软件框架
Android的开发方式 • 应用程序开发
Android的开发方式 • 应用程序开发 • Android开发的主流方式 • 起点低,开放性好,文档完备 • 支持、调试、性能分析等工具多 • 适宜人群广泛,无任何限制 • 目前市面上的培训及书籍所指的Android开发,基本上默认为应用程序开发
Android的开发方式 • 产品分支的维护
Android的开发方式 • 产品分支维护 • Android开发小组 • Android设备厂商 • Android最多只相当于beta版本,bug比较多 • 设备厂商有自己的需求,需要客制化某些功能 • 支持新设备
Android的开发方式 • 硬件设备功能的开发
硬件设备功能的开发 • Android系统与硬件无关,只规范某些硬件的接口 • 厂商需要为自己的硬件写driver,并完成android的HAL,同时要配合上层调试 • 加入android未明确的新设备,需要framework新增服务及为应用程序增加接口。
Android的开发方式 • 新平台架构的移植
Android的开发方式 • 新平台架构的移植 • 目前为止,Android的默认平台为arm • 当移植到新的架构时,需要对整个android系统做移植 • 工作量大 • 技术要求高
什么是Android • Android的开发方式 • Android应用开发环境 • Android工具集
Android应用程序开发 切入Android开发的第一步是熟悉Android应用开发
Android应用程序开发 • Android应用程序开发环境 • Android开发语言为java(应用开发) • Android开发工具Eclipse+ADT • Android SDK • Android NDK(一般用不上) (Android支持多个系统开发,包括windows linux及mac)
Android应用开发环境 • JRE与JDK的安装 • Eclipse的安装 • ADT的安装 • SDK的安装与配置 • 模拟器启动与配置
Android应用开发环境 • JRE与JDK安装 • 为了运行java写的程序(比如eclipse),必须要安装java virtual machine • 一般可以理解,jvm是java runtime environment的一部分,需要安装jre • 要开发java程序,必须安装jdk (java development kit<j2se即可>),jdk提供java编译和运行的必要工具集,jdk已经包含了jre
Android应用程序开发 • Eclipse的安装 • Eclipse是基于 Java 的可扩展开发平台,一个著名的IDE。 • 它是一个框架和一组服务,设计初衷是用来开发java程序 • 可通过外挂插件,开发c++等其他语言的程序 • 由于可支持外挂,第三方软件开发商可以基于其开发扩展自己的IDE环境 • Google基于Eclipse的android IDE开发环境插件 – ADT
Android应用程序开发 • Eclipse的下载与安装 • 下载:www.eclipse.org • 安装:纯绿色软件,解压即可 • 注意配置虚拟机内存,某人虚拟机要用512M内存
Android应用程序开发 • ADT的安装 • SDK的安装 • 启动模拟器
Android应用程序开发 • 关于density • Pixel: 物理像素 • Density: 每英寸像素点数 • dip: 设备无关像素(逻辑像素) • Pixel相同的情况下,Density越大,像素点越密,则: • 屏幕尺寸越小, • Dip值越小 • 图标越小, • 图像感官越细腻
Android应用程序开发 • 以上内容都可以在android SDK中有详细说明 • Android 官方开发文档: • http://developer.android.com • 需要翻墙才可访问 • 内部网下载的android SDK开发文档 • http://192.168.90.202 • 内网软件资源 • http://192.168.90.202
Android应用开发 • Android工程 • APK的生成 • Apk的安装与调试
Android应用开发 • Java源码 • Aapt生成的R.java • Android frameworks(android.jar) • assets • Resource文件 • AndroidManifest.xml • Default.properties
Parser后的二进制xml文件 Android应用开发 • META-INF • 直接从jar中引入的包描述信息目录 • Res • 存放资源文件的目录 • AndroidManifest.xml • Apk程序的全局配置文件 • Class.dex • Dalvik字节码 • Resources.arsc • 编译后的二进制资源文件
Android应用程序开发 • Apk的安装与调试 • Apk的安装 • 从host到target:adb push • 从target到target • 拷贝即安装 • 通过apkInstaller –文件浏览器可直接打开安装 • Apk的调试 • Eclipse (adb + ddms + debugger) • trace
什么是Android • Android的开发方式 • Android应用开发环境 • Android工具集
Android工具集 • Aapt (Android Asset Packaging Tool ) • Android的资源打包处理工具 • 预处理资源文件(图片 layout string) • ADB (Android debug bridge) • Android小机/模拟器(target)与PC(host)通信的桥梁 • Android的一些其他工具,都是依赖于ADB的 • Adb shell 登录小机
Android工具集 • Android • Android SDK and AVD manager. • 可通过eclipse启动 • Aidl • Android interface description language • 系统自动调用 • 方便java端IPC接口的声明和实现 • 高级技能
Bmgr • Backup Manager • 备份资料到云服务器 • 做factory reset时激活,不能作为备份用 • Bmgr为开发测试用 • Ddms(Dalvik Debug Monitor Server ) • 调试java的利器 • Draw9patch • 生成.9.png格式的所见即所得工具 • Emulator • Qemu模拟器
Heirachy Viewer • 查看layout的view之间的层次关系的工具 • Layoutopt • 优化layout工具。 • 对用户写的layout,给出优化建议 • Monkey • 运行在target机器上 • 产生伪随机的用户或系统事件 • Monkey Runner • 提供通过非android程序来控制和测试android设备的功能 • 适合单元测试用
Proguard • java代码混淆器 • Sqlite3 • Sqlite数据库的管理软件,命令行模式 • 网上有可视界面的,更直观分析 • TraceViewer • 可视化的程序执行过程分析 • 非常有利于java程序的调试及profile • Zipalign • 自动处理,用户无需关心 • 效能考虑