本书《Android程序设计》非常适合不同背景的Android编程人员。如果你一直在用Objective-C为iPhone或Mac OS编写应用,本书中关于Android工具和Java语言特性等与Android编程相关的介绍能够帮助你理解Android移动应用开发的主题。无论你是初学者还是有一定经验的开发者,都可以从这本书中获得更深入的知识和技能。
Android程序设计电子书封面
读者评价
学习编程,最困难的是读这些狗屁不通的翻译,还是看原版好了。
平心而论,本书的内容并不差。 但组织很差。 对于部分话题的解说探究是有深度的。但是里面对于环境搭建等初级话题的阐述占了太大的篇幅。
OSGI是在manifest文件中指定动态加载模块即bundle的声明周期和依赖关系的规范。
任何Java编程人员,都有必要学习Android UI,借此可以了解今后的Java UI大概会是什么样子。
内容介绍
如何才能构建设计良好的Android应用?通过本书提供的权威指南,深入探索Android核心模块及其API,了解如何创建可以运行在一系列Android设备上的出色的应用软件。本书将带你探索行之有效的应用设计和实施方式,包括一些应用框架,你可以把这些框架作为自己项目的起始点。
深入传感器、本地开发、3D图形和许多其他主题,并发现如何在选择的平台上构建应用程序。如果你要进阶到高级程序员,你将学会如何创建良好的Android应用程序。
- □ 了解如何在Eclipse IDE中使用Android SDK
- □ 掌握高级的Java编程思想,无论你是否有Java编程经验
- □ 创建吸引人且易于操作的Android用户界面
- □ 理解Android特有的数据库设计问题及SQLite
- □ 使用传感器和手势来丰富你的应用输入,而不是局限于点击和滚动
- □ 探索多媒体、地理位置、通信、NFC及其他应用的Android API
目录
- 前言 1
- 第一部分 工具和基础
- 第1章 Android SDK的安装和系统需求 7
- Android SDK的安装和系统需求 7
- 小试牛刀:确认安装是否能够正常工作 16
- SDK的组件 24
- 保持版本最新 30
- 示例代码 32
- 关于代码阅读 34
- 第2章 Android开发之Java必备基础 35
- Android正在重塑客户端Java 35
- Java类型系统 36
- 作用域 57
- Java编程惯例 61
- 第3章 Android应用的主要组件 76
- 活动、意图和任务 77
- 其他Android组件 79
- 组件生命周期 83
- 静态应用资源和上下文 86
- Android应用时运行的环境 94
- 扩展Android 97
- Android中的并发编程 102
- 序列化 116
- Parcelable 118
- 第4章 应用发布之前的准备工作 124
- 应用签名 124
- 把应用投放到Android市场 132
- 其他发布 134
- Google地图API密钥 138
- 指定API级别的兼容性 139
- 兼容不同的屏幕类型 139
- 第5章 Android软件开发工具Eclipse 141
- Eclipse相关的概念和术语 142
- Eclipse视图和透视图 146
- Eclipse中的Java编程 149
- Eclipse和Android 151
- 预防Bug并保持代码整洁 151
- Eclipse特性和替代品 159
- 第二部分 Android框架
- 第6章 构建视图 163
- Android GUI架构 163
- 组装图形界面 167
- 控制器布局 172
- 菜单栏和活动栏 190
- 视图调试和优化 193
- 第7章 Fragment和跨平台支持 195
- 创建Fragment 196
- Fragment生命周期 199
- Fragment管理器 200
- Fragment事务 201
- Support Package 206
- Fragment和布局 207
- 第8章 二维和三维图形的绘制 214
- 自己动手开发部件 214
- Bling 235
- 第9章 数据处理和数据持久化 249
- 关系数据库概览 249
- SQLite 250
- SQL语言 250
- Android应用中的SQL和数据库为中心的数据模型 260
- Android数据库类 261
- Android应用的数据库设计 262
- 使用数据库API:MJAndroid 265
- 第三部分 Android的框架应用
- 第10章 运行良好的应用框架 279
- 对生命周期进行可视化 279
- Fragment生命周期可视化 290
- Activity类和运行良好的应用 293
- Application类的生命周期方法 294
- 第11章 构建用户界面 297
- Top-Level设计 298
- 用户界面的可视化编辑 300
- 从白板开始 301
- Fragment布局 305
- 折叠和展开可扩展的UI界面 307
- 使得Activity、Fragment、Action Bar和多布局能够一起工作 314
- 其他活动 317
- 第12章 使用内容提供者 321
- 理解内容提供者 322
- 定义提供者的公用API 325
- 编写并集成内容提供者 330
- 文件管理和二进制数据 331
- Android MVC和内容查看器 333
- 一个完整的内容提供者代码:SimpleFinchVideoContentProvider 334
- 声明自己的内容提供者 342
- 第13章 内容提供者作为RESTful Web服务的Facade 343
- 开发RESTful类型的Android应用 344
- Network MVC 345
- Network MVC方式的优点小结 346
- 代码实例:动态列出并缓存YouTube视频内容 348
- Finch YouTube视频示例的源代码结构 348
- 视频搜索应用的各个步骤 349
- 步骤1:UI获取用户输入 350
- 步骤2:控制器监听事件 350
- 步骤3:控制器调用内容提供者(即模型)的managedQuery 351
- 步骤4:实现RESTful请求 351
- 第四部分 高级话题
- 第14章 搜索 373
- 搜索界面 373
- 查询建议 382
- 第15章 地理位置和地图定位 389
- 基于地理位置的服务 390
- 地图定位 391
- Google Maps Activity 391
- MapView和MapActivity 392
- 使用MapView 392
- MapView和MyLocationOverlay初始化 393
- 暂停和恢复MapActivity 396
- 通过菜单按钮控制地图 397
- 通过键盘操作地图 399
- 没有地图的地理位置 400
- 街景(StreetView) 408
- 第16章 多媒体 410
- 音频和视频 410
- 播放音频和视频 411
- 录制音频和视频 415
- 存储的媒体内容 421
- 第17章 传感器、NFC、语音、手势和可访问性 422
- 传感器 422
- 近场通信 427
- 手势输入 438
- 可访问性 440
- 第18章 通信、身份认证、同步和社交媒体 442
- 账户信息 442
- 认证和同步 445
- 蓝牙 460
- 第19章 Android本地开发工具箱 476
- 本地方法和JNI调用 477
- Android NDK 478
- NDK提供的本地库文件和头文件 482
- 编译自己定制的库模块 484
- 本地Activity 487
设计原则 设计模式是遵循面向对象设计的五个设计原则来设计的,如下: 1.单一职责原则(SRP)--一个类只能有一个职责,多个职责耦合在一起,会影响复用性。 2.开放封闭原则(OCP)--对扩展是开放的,而对修改是封闭的 3.Liskov替换原则(LSP)--继承必须确保超类所拥有的性质在子类中仍然成立 4.依赖倒置原则(DIP)--高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象;抽象不应该依赖于具体,具体应该依赖于抽象。 5.接口隔离原则(ISP)--使用多个专门的接口比使用单一的总接口要好。
变量 变量必须先定义,后使用。变量名标识内存中一个具体的存储单元,变量值是存储单元中存放的数据。声明变量后,其内容为随机值。 变量名的命名规则: (1)标识符只能由英文字母,数字和下划线组成。 (2)标识符必须以字母或下划线开头。 (3)不允许使用c关键字为标识符命名。
Android App是由一个个画面所组成,每一个画面都是由一个对应的Activity负责。Activity的画面内容是用资源中的布局(Layout)文档来定义的。 Android程序的设计流程(.apk): 1、视觉设计/UI [XML] ; 2、程序逻辑[Java] MainActivity.xml:程序执行时第一个显示的画面,等于是整个程序的起点。(主画面) MainActivity.java:处理事件,MainActivity.xml的程序逻辑文件。 strings.xml:存储字符串【如果XML文件可以存储多个资源向,那么通常就会用XML文件来存储该类资源】