《第一行代码——Android

基本信息

作者: 郭霖

丛书名: 图灵原创

出版社:人民邮电出版社

ISBN:9787115362865

上架时间:2014-7-14

出版日期:2014 年7月

开本:16开

页码:553

版次:1-1

所属分类:计算机 > 软件与程序设计 > 移动开发 > Android

更多关于》》》 《第一行代码——Android》

 

编辑推荐

CSDN超人气博主、CSDN 2013年度十大博客之星、资深Android开发者郭霖力作!

  第一本引入经验值、升级与宝物系统的计算机书!见证自己从菜鸟到鹰的成长!

  全球最大中文Android开发者社区(eoe.cn)、安卓巴士(www.apkbus.com) 联袂推荐

内容简介

书籍

计算机书籍

《第一行代码——android》是android初学者的最佳入门书。全书由浅入深、系统全面地讲解了android软件开发的方方面面。

第1章带领你搭建android开发环境,完成你的第一个android程序。

第2至13章完整地讲解了android开发中的各种基本知识和关键技术,包括四大组件、ui、碎片、广播机制、数据存储、服务、多媒体、网络、定位服务、传感器,以及分布式版本控制系统git的使用等等。在部分章节会穿插相关技术的高级使用技巧。

第14章和第15章则将带领你编写一个完整的项目,教会你如何打包、上架、嵌入广告并获得盈利。

《第一行代码——android》内容通俗易懂,既适合初学者循序渐进地阅读,也可作为一本参考手册,随时查阅。

目录

《第一行代码——android》

第1章 开始启程,你的第一行android代码 1

1.1 了解全貌,android王国简介 2

1.1.1 android系统架构 2

1.1.2 android已发布的版本 3

1.1.3 android应用开发特色 4

1.2 手把手带你搭建开发环境 5

1.2.1 准备所需要的软件 5

1.2.2 搭建开发环境 6

1.3 创建你的第一个android项目 11

1.3.1 创建helloworld项目 11

1.3.2 运行helloworld 14

1.3.3 分析你的第一个android程序 16

1.3.4 详解项目中的资源 20

1.4 前行必备,掌握日志工具的使用 22

1.4.1 添加logcat到你的eclipse 22

1.4.2 使用android的日志工具log 23

1.4.3 为什么使用log而不使用system.out 24

1.5 小结与点评 26

第2章 先从看得到的入手,探究活动 28

2.1 活动是什么 28

2.2 活动的基本用法 28

2.2.1 手动创建活动 29

2.2.2 创建和加载布局 30

2.2.3 在androidmanifest文件中注册 34

2.2.4 隐藏标题栏 35

2.2.5 在活动中使用toast 36

2.2.6 在活动中使用menu 38

2.2.7 销毁一个活动 41

2.3 使用intent在活动之间穿梭 41

2.3.1 使用显式intent 41

2.3.2 使用隐式intent 44

2.3.3 更多隐式intent的用法 46

2.3.4 向下一个活动传递数据 51

2.3.5 返回数据给上一个活动 52

2.4 活动的生命周期 55

2.4.1 返回栈 55

2.4.2 活动状态 56

2.4.3 活动的生存期 56

2.4.4 体验活动的生命周期 58

2.4.5 活动被回收了怎么办 66

2.5 活动的启动模式 68

2.5.1 standard 68

2.5.2 singletop 70

2.5.3 singletask 72

2.5.4 singleinstance 74

2.6 活动的最佳实践 77

2.6.1 知晓当前是在哪一个活动 77

2.6.2 随时随地退出程序 78

2.6.3 启动活动的最佳写法 80

2.7 小结与点评 81

第3章 软件也要拼脸蛋,ui开发的点点滴滴 83

3.1 该如何编写程序界面 83

3.2 常见控件的使用方法 84

3.2.1 textview 84

3.2.2 button 88

3.2.3 edittext 90

3.2.4 imageview 95

3.2.5 progressbar 97

3.2.6 alertdialog 101

3.2.7 progressdialog 103

3.3 详解四种基本布局 105

3.3.1 linearlayout 105

3.3.2 relativelayout 112

3.3.3 framelayout 116

3.3.4 tablelayout 117

3.4 系统控件不够用?创建自定义控件 120

3.4.1 引入布局 121

3.4.2 创建自定义控件 124

3.5 最常用和最难用的控件——listview 127

3.5.1 listview的简单用法 127

3.5.2 定制listview的界面 129

3.5.3 提升listview的运行效率 133

3.5.4 listview的点击事件 135

3.6 单位和尺寸 137

3.6.1 px和pt的窘境 137

3.6.2 dp和sp来帮忙 139

3.7 编写界面的最佳实践 141

3.7.1 制作nine-patch图片 141

3.7.2 编写精美的聊天界面 145

3.8 小结与点评 151

第4章 手机平板要兼顾,探究碎片 153

4.1 碎片是什么 153

4.2 碎片的使用方式 155

4.2.1 碎片的简单用法 157

4.2.2 动态添加碎片 160

4.2.3 在碎片中模拟返回栈 163

4.2.4 碎片和活动之间进行通信 164

4.3 碎片的生命周期 165

4.3.1 碎片的状态和回调 165

4.3.2 体验碎片的生命周期 168

4.4 动态加载布局的技巧 171

4.4.1 使用限定符 171

4.4.2 使用最小宽度限定符 174

4.5 碎片的最佳实践——一个简易版的新闻应用 175

4.6 小结与点评 187

第5章 全局大喇叭,详解广播机制 188

5.1 广播机制简介 188

5.2 接收系统广播 189

5.2.1 动态注册监听网络变化 190

5.2.2 静态注册实现开机启动 194

5.3 发送自定义广播 196

5.3.1 发送标准广播 197

5.3.2 发送有序广播 199

5.4 使用本地广播 202

5.5 广播的最佳实践——实现强制下线功能 205

5.6 git时间,初识版本控制工具 215

5.6.1 安装git 215

5.6.2 创建代码仓库 216

5.6.3 提交本地代码 218

5.7 小结与点评 218

第6章 数据存储全方案,详解持久化技术 220

6.1 持久化技术简介 220

6.2 文件存储 221

6.2.1 将数据存储到文件中 221

6.2.2 从文件中读取数据 225

6.3 sharedpreferences存储 228

6.3.1 将数据存储到sharedpreferences中 229

6.3.2 从sharedpreferences中读取数据 232

6.3.3 实现记住密码功能 234

6.4 sqlite数据库存储 238

6.4.1 创建数据库 239

6.4.2 升级数据库 245

6.4.3 添加数据 248

6.4.4 更新数据 251

6.4.5 删除数据 254

6.4.6 查询数据 256

6.4.7 使用sql操作数据库 260

6.5 sqlite数据库的最佳实践 260

6.5.1 使用事务 261

6.5.2 升级数据库的最佳写法 263

6.6 小结与点评 266

第7章 跨程序共享数据,探究内容提供器 268

7.1 内容提供器简介 268

7.2 访问其他程序中的数据 269

7.2.1 contentresolver的基本用法 269

7.2.2 读取系统联系人 271

7.3 创建自己的内容提供器 275

7.3.1 创建内容提供器的步骤 276

7.3.2 实现跨程序数据共享 281

7.4 git时间,版本控制工具进阶 292

7.4.1 忽略文件 292

7.4.2 查看修改内容 293

7.4.3 撤销未提交的修改 295

7.4.4 查看提交记录 296

7.5 小结与点评 297

第8章 丰富你的程序,运用手机多媒体 298

8.1 使用通知 298

8.1.1 通知的基本用法 298

8.1.2 通知的高级技巧 305

8.2 接收和发送短信 307

8.2.1 接收短信 308

8.2.2 拦截短信 313

8.2.3 发送短信 314

8.3 调用摄像头和相册 320

8.3.1 将程序运行到手机上 320

8.3.2 调用摄像头拍照 322

8.3.3 从相册中选择照片 327

8.4 播放多媒体文件 331

8.4.1 播放音频 332

8.4.2 播放视频 336

8.5 小结与点评 340

第9章 后台默默的劳动者,探究服务 341

9.1 服务是什么 341

9.2 android多线程编程 341

9.2.1 线程的基本用法 342

9.2.2 在子线程中更新ui 343

9.2.3 解析异步消息处理机制 348

9.2.4 使用asynctask 349

9.3 服务的基本用法 353

9.3.1 定义一个服务 353

9.3.2 启动和停止服务 355

9.3.3 活动和服务进行通信 359

9.4 服务的生命周期 363

9.5 服务的更多技巧 364

9.5.1 使用前台服务 364

9.5.2 使用intentservice 367

9.6 服务的最佳实践——后台执行的定时任务 371

9.7 小结与点评 376

第10章 看看精彩的世界,使用网络技术 377

10.1 webview的用法 377

10.2 使用http协议访问网络 380

10.2.1 使用httpurlconnection 380

10.2.2 使用httpclient 385

10.3 解析xml格式数据 388

10.3.1 pull解析方式 391

10.3.2 sax解析方式 394

10.4 解析json格式数据 398

10.4.1 使用jsonobject 399

10.4.2 使用gson 401

10.5 网络编程的最佳实践 404

10.6 小结与点评 408

第11章 android特色开发,基于位置的服务 409

11.1 基于位置的服务简介 409

11.2 找到自己的位置 409

11.2.1 locationmanager的基本用法 410

11.2.2 确定自己位置的经纬度 412

11.3 反向地理编码,看得懂的位置信息 415

11.3.1 geocoding api的用法 416

11.3.2 对经纬度进行解析 417

11.4 使用百度地图 420

11.4.1 申请api key 420

11.4.2 让地图显示出来 423

11.4.3 定位到我的位置 427

11.4.4 使用覆盖物来增加更多功能 430

11.5 git时间,版本控制工具的高级用法 434

11.5.1 分支的用法 434

11.5.2 与远程版本库协作 437

11.6 小结与点评 438

第12章 android特色开发,使用传感器 439

12.1 传感器简介 439

12.2 光照传感器 439

12.2.1 光照传感器的用法 440

12.2.2 制作简易光照探测器 441

12.3 加速度传感器 443

12.3.1 加速度传感器的用法 443

12.3.2 模仿微信摇一摇 444

12.4 方向传感器 446

12.4.1 方向传感器的用法 446

12.4.2 制作简易指南针 448

12.5 小结与点评 453

第13章 继续进阶,你还应该掌握的高级技巧 455

13.1 全局获取context的技巧 455

13.2 使用intent传递对象 459

13.2.1 serializable方式 459

13.2.2 parcelable方式 461

13.3 定制自己的日志工具 462

13.4 调试android程序 464

13.5 编写测试用例 468

13.5.1 创建测试工程 468

13.5.2 进行单元测试 471

13.6 总结 474

第14章 进入实战,开发酷欧天气 476

14.1 功能需求及技术可行性分析 476

14.2 git时间,将代码托管到github上 478

14.3 创建数据库和表 485

14.4 遍历全国省市县数据 494

14.5 显示天气信息 507

14.6 切换城市和手动更新天气 519

14.7 后台自动更新天气 523

14.8 修改图标和名称 526

14.9 你还可以做的事情 528

第15章 最后一步,将应用发布到google play 530

15.1 生成正式签名的apk文件 530

15.2 申请google play账号 533

15.3 上传和发布应用程序 534

15.4 嵌入广告进行盈利 541

15.4.1 注册有米账号和验证身份 542

15.4.2 下载和接入有米sdk 544

15.4.3 重新发布应用程序 550

15.5 结束语 553

本图书信息来源:互动出版网

《第一行代码——Android》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. 基于Redis的BloomFilter算法去重

    BloomFilter算法及其适用场景 BloomFilter是利用类似位图或者位集合数据结构来存储数据,利用位数组来简洁的表示一个集合,并且能够快速的判断一个元素是不是已经存在于这个集合.因为基于H ...

  2. 对于Discuz!NT不允许新用户注册的解决办法

    客户论坛用的是Discuz!NT,但是用户注册总是提示不允许新用户注册,对于这个问题,网上好多说的是管理员登录后台,在"用户与访问控制"里将允许新用户注册改为"是&quo ...

  3. Hekaton是如何影响你数据库的目标恢复时间(RTO)的

    这个周末我发现了SQL Server 2014里Hekaton的一个有趣副作用,很遗憾它会负面影响你数据库的目标恢复时间(Recovery Time Objective,RTO).你已知道,对于每个本 ...

  4. [Solution] 一步一步WCF(1) 快速入门

    Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台.整合了原有的windows通讯的 .n ...

  5. 《构建之法》第8、9、10章 读书笔记和Sprint总结

    第八章:需求分析 这章主要解析了需求的多面方面,不同的项目需要不同的手段,真正的需求稍纵即逝,需要靠火眼金睛和敏捷的身手来发现并抓住它们.另外,很多时候用户并不知道自己确切的需求,或者不愿意表达完整的 ...

  6. 【读书笔记】-【编程语言的实现模式】-【LL(1)递归下降的语法解析器】

    形如:[a,b,c] [a,[b,cd],f] 为 嵌套列表 其ANTLR文法表示: list :'[' elements ']'; // 匹配方括号 elements : elements (',' ...

  7. JavaScript 按值传递 & 按引用传递

    (1)值的比较--引用的比较 首先,原始值的比较是值的比较:只有在它们值相等的时候它们才相等 比如简单的 var a1 = 10; var a2 = 10; console.log(a1 === a2 ...

  8. Ajax学习整理

    什么是ajax?W3School中给ajax的定义是: 1.AJAX = 异步 JavaScript 和 XML. 2.AJAX 是一种用于创建快速动态网页的技术. 3.通过在后台与服务器进行少量数据 ...

  9. Enterprise Library - Data Access Application Block 6.0.1304

    Enterprise Library - Data Access Application Block 6.0.1304 企业库,数据访问应用程序块 6.0.1304 企业库的数据访问应用程序块的任务简 ...

  10. C#130问,初级程序员的面试宝典

    首先介绍下,目前C#作为一门快速开发的语言,在面试的过程中需要注意的技术知识点,了解下面的知识点对于初级工程师入职非常有帮助,也是自己的亲身体悟. 1.    简述 private. protecte ...