Android 开发权威指南 第一版
Android 开发权威指南第一版《Android开发权威指南》注重对实际动手能力的指导,在遵循技术研发知识体系严密性的同时,在容易产生错误、不易理解的环节上配备了翔实的开发情景截图;并将重要的知识点和开发技巧以“多学一招”、“扩展学习”、“技巧点拨”等的活泼形式呈现给读者。在程序实例的讲解方面,主要将实例安插在Android开发的精髓知识章节,这为读者学习与实践结合提供了很好的指导。
文档截图:
第一部分 准备篇第1章 初识庐山真面目——Android开发简介 21.1 Android的基本概念 21.1.1 Android简介 21.1.2 Android的版本 41.1.3 Android的系统构架 51.1.4 Android的应用程序框架 61.2 JIL Widget介绍 71.3 小结 8第2章 工欲善其事,必先利其器——搭建和使用Android开发环境 92.1 开发包及工具的安装 92.1.1 开发Android程序都需要些什么 92.1.2 安装JDK和配置Java开发环境 102.1.3 eclipse的安装与汉化 112.1.4 安装AndroidSDK 122.1.5 安装Eclipse插件ADT 132.2 真实体验——编写第一个Android程序(随机绘制圆饼) 152.2.1 创建Android工程 152.2.2 在模拟器中运行Android程序 172.2.3 界面控件的布局 192.2.4 编写代码 202.2.5 调试程序 232.2.6 在手机上运行和调试程序 282.3 迁移Android工程可能发生的错误 292.4 不需要写一行代码的开发工具:AppInventor 312.4.1 AppInventor简介 312.4.2 AppIntentor的下载和安装 312.4.3 用拖曳控件的方式设计界面 332.4.4 像拼图一样拼装代码 342.5 小结 37第二部分 基础篇第3章 千里之行始于足下——Android程序设计基础 403.1 Android应用程序框架 403.1.1 Android项目的目录结构 403.1.2 AndroidManifest.xml文件的结构 423.2 Android应用程序中的资源 443.3 Android的应用程序组件 443.3.1 Activity(Android的窗体) 453.3.2 Service(服务) 453.3.3 Broadcast Receiver(广播接收器) 453.3.4 Content Provider(内容提供者) 463.4 Android程序的UI设计 463.4.1 手工配置XML布局文件 463.4.2 ADT自带的可视化UI设计器 473.4.3 使用DroidDraw设计UI布局 473.5 小结 48第4章 我的UI我做主——用户界面开发基础 494.1 Activity的使用方法 494.1.1 创建Activity 494.1.2 配置Activity 504.1.3 显示其他的Activity(Intent与Activity) 524.2 Activity的生命周期 554.3 在不同Activity之间传递数据 604.3.1 使用Intent传递数据 604.3.2 使用静态变量传递数据 624.3.3 使用剪切板传递数据 634.3.4 使用全局对象传递数据 654.3.5 返回数据到前一个Activity 674.4 视图(View) 684.4.1 视图简介 684.4.2 使用XML布局文件定义视图 694.4.3 在代码中控制视图 704.5 布局(Layout) 724.5.1 框架布局(FrameLayout) 724.5.2 线性布局(LinearLayout) 754.5.3 相对布局(RelativeLayout) 794.5.4 表格布局(TableLayout) 814.5.5 绝对布局(AbsoluteLayout) 824.5.6 重用XML布局文件 824.5.7 优化XML布局文件 854.5.8 查看apk文件中的布局 864.6 小结 87第5章 良好的学习开端——控件(Widget)详解 885.1 常用XML属性解析 885.1.1 android:id属性 885.1.2 控件的宽度(android:layout_width)和高度(android:layout_height) 885.1.3 android:layout_margin属性 895.1.4 android:padding属性 895.1.5 android:layout_weight属性 905.1.6 android:layout_gravity和android:gravity属性 905.1.7 android:visibility属性 915.1.8 android:background属性 915.1.9 指定单击事件方法(android:onClick属性) 925.1.10 控件焦点属性(android:focusable和android:focusable-InTouchMode) 925.2 TextView(显示文本的控件) 935.2.1 显示富文本(URL、不同大小、字体、颜色的文本) 935.2.2 在TextView中显示表情图像和文字 975.2.3 单击链接弹出Activity 1005.2.4 为指定文本添加背景 1035.2.5 带边框的TextView 1065.2.6 设置行间距 1105.2.7 在未显示完的文本后面加省略号(…) 1115.2.8 用TextView实现走马灯效果 1135.2.9 垂直滚动TextView中的文本 1145.3 EditText(编辑文本的控件) 1155.3.1 像QQ一样输入表情图像 1155.3.2 在EditText中输入特定的字符 1175.3.3 AutoCompleteText-View(自动完成输入内容的控件) 1185.4 按钮和复选框控件 1205.4.1 Button(普通按钮控件) 1205.4.2 图文混排的按钮 1225.4.3 ImageButton(图像按钮控件) 1245.4.4 RadioButton(选项按钮控件) 1245.4.5 ToggleButton(开关状态按钮控件) 1255.4.6 CheckBox(复选框控件) 1265.5 ImageView(显示图像的控件) 1285.5.1 ImageView控件的基本用法 1285.5.2 显示指定区域的图像 1295.5.3 缩放和旋转图像 1325.6 时间与日期控件 1335.6.1 DatePicker(输入日期的控件) 1335.6.2 TimePicker(输入时间的控件) 1345.6.3 DatePicker、TimePicker与TextView同步显示日期和时间 1345.6.4 AnalogClock和DigitalClock(显示时钟的控件) 1365.7 进度条控件 1375.7.1 ProgressBar(进度条控件) 1375.7.2 SeekBar(拖动条控件) 1395.7.3 设置ProgressBar和SeekBar的颜色及背景图 1405.7.4 RatingBar(评分控件) 1435.8 列表控件 1455.8.1 ListView(普通列表控件) 1455.8.2 为ListView列表项添加复选框和选项按钮 1475.8.3 对列表项进行增、删、改操作 1495.8.4 改变列表项的背景色 1535.8.5 ListActivity(封装ListView的Activity) 1545.8.6 ExpandableListView(可扩展的列表控件) 1555.8.7 Spinner(下拉列表控件) 1575.9 滚动控件 1605.9.1 ScrollView(垂直滚动控件) 1605.9.2 HorizontalScrollView(水平滚动控件) 1615.9.3 可垂直和水平滚动的视图 1625.9.4 Gallery(画廊控件) 1635.10 ImageSwitcher(图像切换控件) 1645.11 GridView(网格控件) 1665.12 TabHost(标签控件) 1685.13 ViewStub(惰性装载控件) 1695.14 小结 171第6章 友好的菜单——Menu介绍与实例 1726.1 菜单的基本用法 1726.1.1 创建选项菜单(Options Menu) 1726.1.2 带图像的选项菜单 1736.1.3 关联Activity 1736.1.4 响应菜单的单击动作 1746.1.5 动态添加、修改和删除选项菜单 1756.1.6 带复选框和选项按钮的子菜单 1766.1.7 上下文菜单 1786.1.8 菜单事件 1796.1.9 从菜单资源中装载菜单 1806.2 菜单特效 1816.2.1 自定义菜单 1816.2.2 模拟UCWeb效果菜单 1846.2.3 QuickContactBadge与联系人菜单 1896.3 小结 192第7章 友好地互动交流——信息提醒(对话框、Toast与Notification) 1937.1 对话框的基本用法 1937.1.1 带2个按钮(确认/取消)的对话框 1937.1.2 带3个按钮(覆盖/忽略/取消)的对话框 1957.1.3 简单列表对话框 1967.1.4 单选列表对话框 1987.1.5 多选列表对话框 1997.1.6 进度对话框 2017.1.7 登录对话框 2057.1.8 使用Activity托管对话框 2077.2 对话框的高级应用 2097.2.1 阻止单击按钮关闭对话框 2097.2.2 改变对话框的显示位置 2137.2.3 在对话框按钮和内容文本中插入图像 2157.2.4 改变对话框的透明度 2167.3 Toast 2177.3.1 Toast的基本用法 2177.3.2 永不关闭的Toast 2187.3.3 用PopupWindow模拟Toast提示信息框 2217.4 通知(Notification) 2217.4.1 在状态栏上显示通知信息 2227.4.2 Notification的清除动作 2247.4.3 永久存在的Notification 2257.4.4 自定义Notification 2267.5 小结 227第8章 移动的信息仓库——数据存储 2288.1 读写key-value对:SharedPreferences 2288.1.1 SharedPreferences的基本用法 2288.1.2 数据的存储位置和格式 2298.1.3 存取复杂类型的数据 2308.1.4 设置数据文件的访问权限 2338.1.5 可以保存设置的Activity:PreferenceActivity 2348.2 文件存储 2388.2.1 openFileOutput和openFileInput方法 2388.2.2 读写SD卡中的文件 2398.2.3 SAX引擎读取XML文件的原理 2418.2.4 将XML文件转换成Java对象 2428.2.5 文件压缩(Jar、Zip) 2458.3 SQLite数据库 2498.3.1 SQLite数据库管理工具 2498.3.2 SQLiteOpenHelper类与自动升级数据库 2518.3.3 数据绑定与SimpleCursorAdapter类 2528.3.4 操作SD卡上的数据库 2558.3.5 将数据库与应用程序一起发布 2568.3.6 内存数据库 2578.4 小结 258第9章 Android中的窗口——Activity 2599.1 调用其他程序中的Activity 2599.1.1 直接拨号 2599.1.2 将电话号传入拨号程序 2599.1.3 调用拨号程序 2609.1.4 浏览网页 2619.1.5 向E-mail客户端传递E-mail地址 2619.1.6 发送E-mail 2619.1.7 查看联系人 2629.1.8 显示系统设置界面(设置主界面、wifi设置界面) 2639.1.9 启动处理音频的程序 2649.2 自定义Activity Action 2649.3 Activity的高级应用 2669.3.1 ActivityGroup 2669.3.2 自定义半透明窗口 2689.3.3 Activity之间切换的动画效果 2699.4 小结 270第10章 全局事件——广播(Broadcast) 27110.1 什么是广播 27110.2 接收系统广播 27210.2.1 短信拦截 27210.2.2 用代码注册广播接收器 27410.2.3 广播接收器的优先级 27510.2.4 来去电拦截 27610.2.5 截获屏幕休眠与唤醒 28010.2.6 开机自动运行 28110.2.7 显示手机电池的当前电量 28210.3 发送广播 28410.4 验证广播接收器是否注册 28510.5 小结 286第11章 跨应用数据源——Content Provider 28711.1 Content Provider的作用 28711.2 获得系统数据 28811.2.1 读取联系人信息 28811.2.2 查看收到的短信 29011.3 自定义Content Provider 29111.3.1 查询城市信息 29111.3.2 为Content Provider添加访问权限 29711.4 小结 298第12章 一切为用户服务——Service基础与实例 29912.1 Service基础 29912.1.1 Service的生命周期 29912.1.2 绑定Activity和Service 30212.1.3 开机启动Service 30512.1.4 判断Service是否已注册 30612.1.5 判断Service是否已开始 30712.2 跨进程访问(AIDL服务) 30812.2.1 什么是AIDL服务 30812.2.2 建立AIDL服务的步骤 30812.2.3 建立AIDL服务 30812.2.4 传递复杂数据的AIDL服务 31212.2.5 AIDL与来去电自动挂断 31712.3 小结 319第13章 做好应用桥梁——网络与通信 32013.1 WebView控件 32013.1.1 用WebView控件浏览网页 32013.1.2 用WebView控件装载HTML代码 32213.2 访问HTTP资源 32413.2.1 提交HTTP GET和HTTP POST请求 32413.2.2 HttpURLConnection类 32613.2.3 上传文件 32713.3 客户端Socket 33013.3.1 连接服务器 33113.3.2 扫描服务器打开的端口 33113.3.3 发送和接收数据 33313.3.4 获得无线路由分配给手机的IP地址 33413.3.5 设置Socket选项 33513.4 服务端Socket 33913.4.1 手机服务器的实现 33913.4.2 利用Socket在应用程序之间通信 34013.5 蓝牙通信 34213.5.1 蓝牙简介 34213.5.2 打开和关闭蓝牙设备 34313.5.3 搜索蓝牙设备 34413.5.4 蓝牙数据传输 34613.6 小结 351第14章 炫酷你的应用——多媒体开发 35214.1 音乐 35214.1.1 播放音乐 35214.1.2 录音 35314.2 视频 35414.2.1 使用VideoView播放视频 35414.2.2 使用SurfaceView播放视频 35514.2.3 录制视频 35714.3 相机 35714.3.1 调用系统的拍照功能 35814.3.2 自定义拍照功能 35914.4 铃声 36414.5 小结 366第15章 2D游戏开发 36715.1 绘制游戏的画布 36715.1.1 在View上实现动画效果 36715.1.2 在SurfaceView上实现动画效果 37115.2 图形绘制基础 37415.2.1 绘制像素点 37415.2.2 绘制直线 37415.2.3 绘制圆形 37515.2.4 绘制弧 37515.2.5 绘制文本 37615.2.6 综合绘制各种图形 37615.3 高级图像处理技术 38015.3.1 绘制位图 38015.3.2 图像的透明度 38215.3.3 旋转图像 38315.3.4 路径 38415.3.5 Shader的渲染效果 38815.4 帧(Frame)动画 39215.4.1 AnimationDrawable与帧动画 39215.4.2 播放Gif动画 39415.5 补间(Tween)动画 39715.5.1 移动补间动画 39715.5.2 缩放补间动画 39915.5.3 旋转补间动画 40215.5.4 透明度补间动画 40315.6 小结 404第16章 有趣的Android应用 40516.1 传感器 40516.1.1 如何使用传感器 40516.1.2 加速度传感器(Accelerometer) 40916.1.3 重力传感器(Gravity) 40916.1.4 光线传感器(Light) 41016.1.5 陀螺仪传感器(Gyroscope) 41116.1.6 方向传感器(Orientation) 41116.1.7 其他传感器 41216.2 输入输出技术 41316.2.1 语音识别 41316.2.2 手势输入 41516.2.3 语音朗读(TTS) 41716.3 Google地图 41916.4 GPS定位 42316.5 桌面上的小东西 42516.5.1 窗口小部件(AppWidget) 42516.5.2 快捷方式 43116.5.3 实时文件夹 43316.6 应用更华丽——动态壁纸 43516.7 小结 441第三部分 高级篇第17章 HTML5与移动Web开发 44417.1 HTML5简介 44417.2 HTML5精彩效果演示 44517.3 HTML5在Android中的应用 44717.4 HTML5的画布(Canvas) 44817.4.1 Canvas概述 44817.4.2 检测浏览器是否支持Canvas 44917.4.3 在Web页面中使用Canvas 45017.4.4 使用路径(Path) 45217.4.5 设置线条风格 45317.4.6 设置填充类型 45317.4.7 填充矩形区域 45417.4.8 使用渐变色(Gradient) 45417.4.9 拉伸画布对象 45517.4.10 在Canvas上绘制文本 45617.4.11 使用阴影 45717.5 调试JavaScript 45817.6 小结 459第18章 输入法开发 46018.1 Android输入法简介 46018.2 控制输入法 46118.3 输入法实战 46218.3.1 实现输入法的步骤 46318.3.2 编写输入法程序 46318.3.3 输入法服务的生命周期 46618.3.4 预输入文本 46718.3.5 输入法设置 46718.4 小结 468第19章 Android OpenGL ES开发基础 46919.1 OpenGL简介 46919.2 什么是OpenGL ES 46919.3 多边形 47019.4 颜色 47419.5 旋转三角形 47519.6 旋转立方体 47719.7 小结 478第20章 OpenGL ES的超酷效果 47920.1 保持平衡的旋转文本 47920.2 左右摇摆的Android机器人 48220.3 纠缠在一起的旋转立方体 48520.4 透明背景的旋转立方体 48620.5 触摸旋转的立方体 48720.6 2D和3D的综合旋转效果 48920.7 旋转立体天空 49120.8 小结 493第21章 Android NDK编程 49421.1 Android NDK简介 49421.2 安装、配置和测试NDK开发环境 49521.2.1 系统和软件要求 49521.2.2 下载和安装Android NDK 49521.2.3 下载和安装Cygwin 49521.2.4 配置Android NDK的开发环境 49821.3 第一个NDK程序:世界你好 49921.3.1 编写和调用NDK程序 49921.3.2 用命令行方式编译NDK程序 50121.3.3 在Eclipse中集成Android NDK 50221.4 背景不断变化的三角形(NDK 版OpenGL ES) 50421.5 使用NDK OpenGL ES API实现千变万化的3D效果 50721.6 使用NDK调用音频API 51021.7 本地Activity(Native Activity) 51121.8 Android NDK配置文件详解 51321.8.1 Android NDK定义的变量 51321.8.2 Android NDK定义的函数 51421.8.3 描述模块的变量 51521.8.4 配置Application.mk文件 51621.9 小结 516第22章 测试驱动开发(TDD) 51722.1 JUnit测试框架 51722.2 测试Activity 51722.3 测试Content Provider 52122.4 测试Service 52322.5 测试普通类 52322.6 小结 525第四部分 综合实例篇第23章 Android综合案例一——蓝牙聊天 52823.1 蓝牙聊天主界面 52823.2 添加选项菜单 53023.3 搜索和连接蓝牙设备 53023.4 使设备可被其他蓝牙设备发现 53323.5 发送和接收聊天信息 53323.6 小结 537第24章 Android综合案例二——月球登陆(游戏) 53824.1 游戏的玩法 53824.2 实现游戏界面 53924.3 设置游戏难度 54024.4 开始游戏 54124.5 控制飞船喷火 54424.6 控制飞船改变飞行方向 54424.7 判断飞船是否成功着陆 54524.8 小结 546第25章 Android综合案例三——全键盘输入法(应用) 54725.1 安装输入法 54725.2 输入法的初始化工作 54825.3 响应键盘操作 54925.4 根据EditText控件的属性显示不同的软键盘 55125.5 小结 553第26章 Android综合案例四——贪吃蛇(游戏) 55426.1 游戏玩法 55426.2 游戏主界面设计 55526.3 控制小蛇的移动 55726.4 小结 560第27章 Android综合案例五——新浪微博客户端(应用) 56127.1 新浪微博简介 56127.1.1 新浪微博客户端 56127.1.2 新浪微博开放API 56327.2 使用新浪微博开发API 56327.3 创建和配置新浪微博客户端工程 56427.4 登录新浪微博 56427.5 功能按钮 56727.6 显示“我的首页”的微博 56927.7 评论微博 57227.8 转发微博 57327.9 写微博 57427.10 小结 576第28章 Android综合案例六——笑脸连连看(游戏) 57728.1 游戏玩法 57728.2 准备图像素材 57828.3 实现主界面 57828.4 随机生成连连看图像 58028.5 选中两个相同图像后消失 58028.6 用定时器限制游戏时间 58128.7 小结 582
文档大小;53.2MB说明:本文档给学习Android开发需要的人提供。
下载地址;
链接: http://pan.baidu.com/s/1i3eOnjR 密码: wflx
沙发是我的了吗!!...嘻嘻! 雄哥 谢谢分享{:301_1003:} 谢谢熊哥,
页:
[1]