图书介绍

Head First Android开发 第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Head First Android开发 第2版
  • (美)Dawn Griffiths,(美)David Griffiths 著
  • 出版社: 北京:中国电力出版社
  • ISBN:9787519821500
  • 出版时间:2018
  • 标注页数:888页
  • 文件大小:86MB
  • 文件页数:930页
  • 主题词:移动终端-应用程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Head First Android开发 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1入门 投身新领域2

欢迎来到Android世界2

Android平台剖析3

我们要做的工作4

你的开发环境5

安装Android Studio6

构建一个基本应用7

如何构建应用8

活动和布局概览12

如何构建应用(续)13

你已经创建了你的第一个Android应用15

Android Studio会为你创建一个完整的文件夹结构16

工程中的有用文件17

用Android Studio编辑器编辑代码18

在Android模拟器上运行应用23

创建Android虚拟设备24

在模拟器中运行应用27

可以在控制台上查看进度28

发生了什么30

改进应用31

布局里有什么32

activity_main.xml包含两个元素33

更新布局中显示的文本34

试一试应用35

你的Android工具箱36

2构建交互式应用 真正有用的应用38

构建一个啤酒荐酒师应用38

创建工程40

我们已经创建了默认活动和布局41

详细介绍设计编辑器42

使用设计编辑器增加一个按钮43

activity_find_beer.xml有一个新按钮44

仔细查看布局代码45

试一试应用49

硬编码文本很难实现本地化50

创建字符串资源51

在布局中使用字符串资源52

activity_find_beer.xml的代码53

向spinner增加值56

向strings.xml增加string-array57

试一试spinner58

需要让按钮做些事情59

让按钮调用一个方法60

活动代码61

为活动增加onClickFindBeer()方法62

onClickFindBeer()需要做些什么63

一旦有了View,就能访问它的方法64

更新活动代码65

活动的第一个版本67

这些代码做什么68

构建定制Java类70

运行代码时发生了什么74

试一试应用75

你的Android工具箱76

3多个活动和意图 说出你的意图78

应用可以包含多个活动78

应用结构79

开始吧:创建工程79

更新布局80

创建第二个活动和布局82

认识Android清单文件84

意图是一个消息类型86

运行应用时会发生什么88

向第二个活动传递文本90

更新文本视图属性91

putExtra()在意图中增加额外的信息92

更新CreateMessageActivity代码95

让ReceiveMessageActivity使用意图中的信息96

用户单击Send Message按钮时发生了什么97

可以修改应用向其他人发送消息98

Android应用如何工作99

创建意图指定一个动作101

修改意图来使用动作102

Android如何使用意图过滤器106

如果总是想让用户选择活动该怎么做112

调用createChooser()时发生了什么113

修改代码创建选择器115

你的Android工具箱118

4活动生命周期 活动的一生120

活动到底如何工作120

秒表应用122

增加字符串资源123

活动代码如何工作125

为按钮增加代码126

runTimer()方法127

完整的runTimer()代码129

完整的StopwatchActivity代码130

旋转屏幕会改变设备配置136

活动的状态137

活动生命周期:从创建到撤销138

更新的StopwatchActivity代码142

运行应用时发生了什么143

活动的生命中不只是有创建和撤销146

更新的StopwatchActivity代码151

运行应用时会发生什么152

不过如果应用只是部分可见会怎么样154

活动生命周期:前台生命期155

如果活动暂停就停止秒表158

实现onPause()和onResume()方法159

完整的活动代码160

运行应用时发生了什么163

生命周期方法快速指南167

你的Android工具箱168

5视图和视图组 享受视图170

用户界面由布局和GUI组件组成170

LinearLayout将视图显示在一行或一列中171

增加尺寸资源文件为不同布局指定一致的内边距174

使用外边距增加视图间的距离176

调整基本线性布局177

增加权重扩展视图179

android:gravity属性的可用值183

完整的线性布局代码186

帧布局叠放视图188

为工程增加一个图像189

嵌套布局的完整代码192

FrameLayout:小结193

使用视图201

可编辑文本视图202

开关按钮204

开关205

复选框206

单选钮208

Spinner210

图像视图211

为按钮增加图像213

滚动视图215

toast216

你的Android工具箱220

6约束布局 集中在一起222

嵌套布局可能效率很低222

引入约束布局223

确保你的工程包含约束布局库224

向strings.xml增加字符串资源225

使用蓝图工具226

使用约束指定视图位置227

增加一个垂直约束228

对蓝图的改变会反映到XML中229

如何让视图居中230

通过更新偏差调整视图的位置231

如何改变视图的大小232

如何对齐视图238

建立一个真正的布局239

首先,增加上面一行视图240

推导约束特性会猜测要增加哪些约束241

为蓝图增加下一行……242

最后,为消息增加一个视图243

试一试应用244

你的Android工具箱245

7列表视图和适配器 合理组织248

所有应用都从想法开始248

使用ListView导航到数据251

饮料详细信息活动253

Starbuzz应用结构254

Drink类256

顶级布局包含一个图像和一个列表258

完整的顶级布局代码260

利用监听器让列表视图响应单击261

为列表视图设置监听器262

类别活动显示一个类别的数据267

更新activity_drink_category.xml268

非静态数据要使用适配器269

用数组适配器连接列表视图和数组270

为DrinkCategory Activity增加数组适配器271

应用回顾:我们做了哪些工作274

如何在TopLevelActivity中处理单击276

完整的DrinkCategory Activity代码278

用数据更新视图281

DrinkActivity代码283

运行应用时发生了什么284

你的Android工具箱288

8支持库和应用条 走捷径290

好应用都有清晰的结构290

不同类型的导航291

应用主题来增加应用条293

创建披萨应用295

增加v7 AppCompat支持库296

AndroidManifest.xml可以改变应用条的外观299

如何应用主题300

在样式资源文件中定义样式301

定制应用的外观303

在颜色资源文件中定义颜色304

activity_main.xml的代码305

ActionBar与Toolbar比较306

在活动布局中包含工具条312

为应用条增加动作315

增加标签来改变应用条文本318

AndroidManifest.xml的代码319

控制动作的外观322

完整的MainActivity.java代码325

启用向上导航327

在应用条上共享内容331

为menu_ main.xml增加一个共享动作提供者332

用意图指定内容333

完整的MainActivity.java代码334

你的Android工具箱337

9片段 模块化340

你的应用在所有设备上都要表现良好340

应用可能还要有不同的行为341

片段支持重用代码342

应用的手机版本343

创建工程和活动345

为MainActivity的布局增加一个按钮346

如何向工程增加片段348

片段的onCreateView()方法350

向活动布局增加片段352

让片段与活动交互359

Workout类360

向片段传递训练项目ID361

让活动设置训练项目ID363

片段生命周期365

在片段的onStart()方法中设置视图的值367

如何创建列表片段374

更新的WorkoutListFragment代码377

activity_main.xml的代码381

连接列表和详细信息384

WorkoutListFragment.java的代码387

MainActivity需要实现接口388

DetailActivity需要向WorkoutDetailFragment传递ID389

你的Android工具箱392

10面向更大界面的片段 不同大小,不同界面394

Workout用在手机和平板电脑上看上去是一样的394

面向更大界面的设计395

应用的手机版本396

应用的平板电脑版本397

创建一个平板电脑AVD399

将屏幕特定资源放在屏幕特定文件夹中402

不同的文件夹选项403

平板电脑使用layout-large文件夹中的布局408

更新后的代码会做什么410

我们要修改itemClicked()代码412

希望片段处理后退按钮413

认识后退堆栈414

后退堆栈事务并不只是活动415

通过编程使用帧布局替换片段416

利用布局差别区分设备使用的布局417

修改后的MainActivity代码418

使用片段事务419

更新的MainActivity代码423

旋转平板电脑时应用会出问题427

(再谈)保存活动的状态428

更新的WorkoutDetailFragment.java代码430

你的Android工具箱432

11动态片段 嵌套片段434

增加动态片段434

应用的新版本436

创建TempActivity437

TempActivity需要扩AppCompatActivity438

StopwatchFragment.java的代码444

StopwatchFragment布局447

将StopwatchFragment增加到TempActivity的布局449

onClick属性调用活动中的方法,而不是片段的方法452

将OnClickListener关联到按钮457

StopwatchFragment代码458

旋转设备会重置秒表462

对静态片段使用〈fragment〉……463

修改activity_temp.xml来使用FrameLayout464

TempActivity.java的完整代码467

为WorkoutDetailFragment增加秒表469

完整的WorkoutDetailFragment.java代码476

你的Android工具箱480

12设计支持库 向右滑动482

再来看披萨应用482

应用结构483

使用视图分页控件在片段间滑动489

为MainActivity的布局增加一个视图分页控件490

使用片段分页控件适配器让视图分页控件了解页面491

片段分页控件适配器的代码492

完整的MainActivity java代码494

为MainActivity增加标签页导航498

如何向布局增加标签页499

将标签页布局关联到视图分页控件501

完整的MainActivity.java代码502

设计支持库帮助你实现材料设计506

让工具条响应滚动508

向MainActivity的布局增加一个协调器布局509

如何协调滚动行为510

为TopFragment增加可滚动的内容512

完整的fragment_top.xml代码515

向OrderActivity增加折叠工具条517

如何创建一个普通的折叠工具条518

如何为折叠工具条增加图像523

更新后的activity_order.xml代码524

FAB和snackbar526

更新后的activity_order.xml代码528

完整的OrderActivity.java代码533

你的Android工具箱535

13回收视图和卡片视图 回收538

披萨应用还有工作要做538

回收视图概览539

增加披萨数据541

在卡片中显示披萨数据542

如何创建卡片视图543

完整的card captioned_image.xml代码544

增加回收视图适配器546

定义适配器的视图持有者548

覆盖onCreateViewHolder()方法549

为卡片视图增加数据550

完整的CaptionedImagesAdapterjava代码551

创建回收视图553

为PizzaFragment的布局增加RecyclerView554

完整的PizzaFragment.java代码555

回收视图使用一个布局管理器排列视图556

指定布局管理器557

完整的PizzaFragment.java代码558

让回收视图响应单击566

创建PizzaDetailActivity567

PizzaDetailActivity.java的代码569

让回收视图响应单击570

可以从适配器监听视图事件571

使你的适配器可重用572

为适配器增加接口573

PizzaFragment.java中实现监听器575

你的Android工具箱578

14导航抽屉 周游世界580

标签页布局允许用户轻松导航……580

我们要为一个新email应用创建一个导航抽屉581

导航抽屉解析582

创建CatChat工程584

创建InboxFragment585

创建DraftsFragment586

创建SentItemsFragment587

创建TrashFragment588

创建一个工具条布局589

更新应用的主题590

创建HelpActivity591

创建FeedbackActivity592

创建导航抽屉头部594

完整的nav header.xml代码595

如何分组598

把支持区段增加为一个子菜单600

完整的menu nav.xml代码601

如何创建导航抽屉602

完整的activity_main.xml代码603

为MainActivity的帧布局增加InboxFragment604

增加抽屉开关607

用户点击抽屉中的菜单项时做出响应608

实现onNavigationItemSelected()方法609

用户按后退按钮时关闭抽屉614

完整的MainActivity.java代码615

你的Android工具箱619

15SQLite数据库 启动数据库622

再来看Starbuzz622

Android使用SQLite数据库持久存储数据623

Android提供了一些SQLite类624

当前的Starbuzz应用结构625

修改应用来使用数据库626

SQLite帮助器管理数据库627

创建SQLite帮助器628

SQLite数据库内部630

使用结构化查询语言(SQL)创建表631

使用insert()方法插入数据632

插入多个记录633

StarbuzzDatabaseHelper代码634

SQLite帮助器代码会做什么635

如果想要修改数据库呢?636

SQLite数据库有一个版本号637

改变版本号时会发生什么638

用onUpgrade()升级数据库640

用onDowngrade()降级数据库641

下面来升级数据库642

升级现有的数据库645

用update()方法更新记录646

对多个列应用条件647

修改数据库结构649

删除表650

完整的SQLite帮助器代码651

你的Android工具箱656

16基本游标 取出数据658

目前为止完成的工作……658

Starbuzz应用的新结构659

如何修改DrinkActivi来使用Starbuzz数据库660

目前的DrinkActivity代码661

得到数据库引用662

用游标从数据库获取数据663

从一个表返回所有记录664

以特定顺序返回记录665

返回选择的记录666

到目前为止的DrinkActivity代码669

要从游标读取记录,首先需要导航到这个记录670

导航游标671

获取游标值672

DrinkActivity代码673

目前为止完成的工作675

目前的DrinkCategoryActivity代码677

得到Starbuzz数据库的一个引用……678

如何替换列表视图中的数组数据?679

简单游标适配器将游标数据映射到视图680

如何使用简单游标适配器681

关闭游标和数据库682

未完,继续683

修改后的DrinkCategory Activity代码688

DrinkCategory Activity代码(续)689

你的Android工具箱691

17游标与asynctasks 保持在后台694

我们希望Starbuzz应用更新数据库数据694

向DrinkActivity的布局增加一个复选框696

显示FAVORITE列的值697

响应单击事件来更新数据库698

完整的DrinkActivity.java代码701

在TopLevelActivity中显示用户的最爱705

重构TopLevelActivity.java707

新的TopLevelActivity.java代码710

用changeCursor()改变游标715

哪些代码在哪个线程中运行?723

AsyncTask完成异步任务724

onPreExecute()方法725

doInBackground()方法726

onProgressUpdate()方法727

onPostExecute()方法728

AsyncTask类729

完整的UpdateDrinkTask类730

完整的DrinkActivity java代码732

你的Android工具箱737

AsyncTask步骤小结737

18启动式服务 愿意为您效劳740

服务在后台工作740

创建一个启动式服务741

使用IntentService类创建一个基本启动式服务742

如何记录消息日志743

完整的DelayedMessageService代码744

在AndroidManifest.xml中声明服务745

为activity_main.xml增加一个按钮746

使用startService()启动服务747

启动式服务的状态750

启动式服务生命周期:从创建到撤销751

服务继承了生命周期方法752

Android有一个内置的通知服务755

我们将使用AppCompat支持库的通知756

创建一个通知生成器757

使用内置通知服务发出通知759

完整的DelayedMessageService.java代码760

你的Android工具箱765

19绑定式服务和权限 绑定在一起768

绑定式服务绑定到其他组件768

创建一个新服务770

实现一个绑定器771

为服务增加一个getDistance()方法772

更新MainActivity的布局773

创建一个ServiceConnection775

使用bindService()绑定服务778

使用unbindService()与服务解除绑定779

调用OdometerService的getDistance()方法780

完整的MainActivity java代码781

绑定式服务的状态787

增加AppCompat支持库790

为OdometerService增加位置监听器792

更新的OdometerService代码795

计算走过的距离796

完整的OdometerService.java代码798

让应用请求权限802

检查用户对权限请求的响应805

将通知代码增加到onRequestPermissionsResults()809

完整的MainActivity.java代码811

你的Android工具箱815

很高兴你能来到Android世界816

1.发布你的应用862

2.内容提供者863

3.加载器864

4.同步适配器864

5.广播865

6.WebView类866

7.设置867

8.动画868

9.APP部件869

10.自动测试870

热门推荐