书籍详情
《基于Android平台的移动互联网应用开发》[51M]百度网盘|亲测有效|pdf下载
  • 基于Android平台的移动互联网应用开发

  • 出版社:清华大学出版社京东自营官方旗舰店
  • 出版时间:2017-07
  • 热度:10991
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

  1. 对Android应用程序开发的基本概念和技术进行系统讲解,并通过简单易懂的示例说明其具体实现过程。
  2. 通过本书的学习,读者可以牢固掌握Android编程技术的基本概念、原理和编程方法,通过实践的灵活运用,能够进行应用程序的实际开发。
  3. 分为三个部分,共10章。第一部分即第1章,详细介绍Android系统的体系结构、应用程序开发环境及调试环境的搭建;第二部分包括第2~4章,详细介绍用户界面的设计方法、常用布局、基本控件和高级控件、事件处理机制等实现Android用户界面的基本知识,以及用户浏览模式中菜单模式和动作条模式中各种应用的具体实现;第三部分包括第5~10章,详细介绍Android平台的高级知识,包括发送与接收消息、多任务与服务、实现应用程序的数据存储、访问数据资源的接口ContentProvider、触摸事件处理、定位服务和Google地图应用。
  4. 适合对Java编程有一定基础、希望掌握Android程序设计技术的读者,也适合作为高等学校计算机专业的教材,还可作为Android程序设计的培训教材。

内容简介

  

本书对Android应用程序开发的基本概念和技术进行了系统的讲解,并通过简单易懂的示例说明了其具体实现过程。通过本书的学习,读者可以牢固掌握Android编程技术的基本概念、原理和编程方法,通过实践的灵活运用,能够进行应用程序的实际开发。
  全书分为三个部分,共10章。第一部分即第1章,详细介绍Android系统的体系结构、应用程序开发环境及调试环境的搭建;第二部分包括第2~4章,详细介绍用户界面的设计方法、常用布局、基本控件和高级控件、事件处理机制等实现Android用户界面的基本知识,以及用户浏览模式中菜单模式和动作条模式中各种应用的具体实现;第三部分包括第5~10章,详细介绍Android平台的高级知识,包括发送与接收消息、多任务与服务、实现应用程序的数据存储、访问数据资源的接口ContentProvider、触摸事件处理、定位服务和Google地图应用。
  本书适合对Java编程有一定基础、希望掌握Android程序设计技术的读者,也适合作为高等学校计算机专业的教材,还可作为Android程序设计的培训教材。

目录

第1章Android开发基础/1
1.1Android入门1
1.1.1Android简介1
1.1.2Android技术架构2
1.2Android Studio环境搭建4
1.2.1基于Windows的安装5
1.2.2基于Mac的安装6
1.2.3基于Linux的安装6
1.3第一个Android应用程序7
1.3.1创建Android项目7
1.3.2在手机上运行HelloWorld App11
1.3.3在AVD上运行HelloWorld App14
1.3.4定义简单的用户界面16
1.3.5启动另一个Activity18
1.4使用Android Studio23
1.4.1Android Project的目录结构23
1.4.2AndroidManifest.xml分析25
1.5Android App开发起步28
1.5.1App开发流程28
1.5.2Android关键组件30
1.6本章小结30
第2章设计应用界面/31
2.1理解Activity31
2.1.1创建可运行的Activity31
2.1.2Activity的生命周期37
2.1.3任务和回退栈42
2.2理解布局43
2.2.1线性布局LinearLayout45
2.2.2相对布局RelativeLayout49〖1〗基于Android平台的移动互联网应用开发(第2版)目录[3]〖3〗2.2.3表格布局TableLayout52
2.3使用布局54
2.4样式和主题57
2.4.1定义样式58
2.4.2使用样式59
2.5理解资源60
2.5.1提供资源61
2.5.2访问资源62
2.6多屏幕适应63
2.7本章小结64
第3章Fragment和图形控件/66
3.1理解Fragment66
3.1.1Fragment的概念66
3.1.2创建和使用Fragment69
3.1.3创建动态UI74
3.2常用基本控件79
3.2.1事件处理机制80
3.2.2按钮控件81
3.2.3Toast控件88
3.2.4文本控件90
3.2.5ImageView控件96
3.2.6ProgressBar控件98
3.3界面效果处理100
3.3.1文本处理100
3.3.2定义链接101
3.3.3文本样式101
3.3.4切换绘图105
3.3.5叠加绘图107
3.3.6切换颜色109
3.4本章小结110
第4章菜单和动作条/111
4.1菜单模式111
4.1.1菜单资源112
4.1.2菜单类型114
4.1.3菜单分组125
4.1.4设置Intent127
4.2动作条模式128
4.2.1添加Action Item130
4.2.2添加Actiion View134
4.2.3添加Action Provider136
4.2.4使用系统定义的Action Provider137
4.2.5自定义动作提供器139
4.2.6添加Navigation Tab140
4.2.7应用导航模式143
4.3本章小结147
第5章发送和接收消息/148
5.1理解Intent148
5.1.1Intent的概念148
5.1.2Intent对象的组成149
5.1.3Intent解析153
5.1.4使用Intent实现数据传递159
5.2BroadcastReceiver组件168
5.2.1BroadcastReceiver的概念168
5.2.2静态注册方式169
5.2.3动态注册方式172
5.3Notification管理175
5.3.1创建Notification176
5.3.2导航设计181
5.3.3定义样式185
5.4本章小结186
第6章多任务与服务/188
6.1基本概念188
6.1.1进程188
6.1.2线程190
6.2实现多任务191
6.2.1多任务实现原理191
6.2.2用Handler实现多任务194
6.2.3AsyncTask实现多任务197
6.3理解服务200
6.3.1服务的生命周期201
6.3.2创建启动类型服务205
6.3.3创建绑定类型服务211
6.4本章小结219
第7章实现数据的存储/220
7.1本地数据存储220
7.2Preference的存取与设置220
7.2.1存取Shared Preferences221
7.2.2理解Preference框架223
7.3文件读取与保存229
7.3.1内部存储229
7.3.2扩展存储233
7.3.3文件资源235
7.4存取结构化数据237
7.4.1SQLite简介237
7.4.2创建SQLite数据库239
7.4.3管理外键约束242
7.4.4查询和更新SQLite数据库243
7.4.5管理游标Cursor247
7.5本章小结248
第8章内容提供者/249
8.1ContentProvider基础249
8.1.1什么是ContentProvider249
8.1.2访问提供器ContentResolver250
8.1.3内容统一资源标识251
8.1.4MIME类型252
8.2使用ContentProvider253
8.2.1获取数据253
8.2.2修改数据257
8.2.3预定义的ContentProvider263
8.3创建ContentProvider263
8.3.1设计过程264
8.3.2设计实例273
8.4实现数据加载281
8.4.1基本原理281
8.4.2ListView控件284
8.5本章小结287
第9章触摸事件处理/289
9.1理解触摸事件289
9.2事件传递机制292
9.2.1内外层次之间292
9.2.2同一层次之间300
9.3速率跟踪301
9.4多点触控303
9.5手势识别305
9.5.1发现手势306
9.5.2缩放手势处理308
9.6拖放处理311
9.6.1拖放操作311
9.6.2设计拖动操作314
9.6.3实现拖动操作318
9.7本章小结325
第10章定位服务与Google地图/327
10.1定位服务327
10.1.1获取位置信息327
10.1.2定位最佳策略330
10.1.3调试位置数据334
10.1.4实现位置信息获取334
10.2Google地图337
10.2.1API中的重要类338
10.2.2使用Google Maps API339
10.3本章小结351
附录AEclipse的Android App开发环境/352
A.1Android开发环境搭建352
A.1.1安装Eclispe开发环境352
A.1.2安装Android SDK353
A.1.3安装Eclipse ADT插件354
A.1.4安装Google Play services SDK355
A.2第一个Android应用程序356
A.2.1创建AVD356
A.2.2创建一个新的Android项目357
A.2.3创建用户界面359
A.2.4运行应用程序359
A.2.5使用XML 来定义用户界面361
A.3Android项目结构分析365
参考文献/368

精彩书摘

  第3章Fragment和图形控件3.1理解Fragment
  Android运行在各种各样的设备中,有各种尺寸的手机、各种标准的平板电脑、各种类型的控制屏幕甚至电视,而且在使用移动设备时,用户还会经常转换屏幕的纵横角度。虽然可以通过提供不同尺寸的位图、声明多种屏幕尺寸来解决分辨率不同的问题,但如果要App的界面友好美观,还需要做大量工作来为同一界面设计多个布局,实现多屏幕适应。
  在开发过程中,一般都是先基于手机开发一套App,然后复制一份,修改布局以适应超级大屏幕。难道无法做到一种UI的布局可以同时适应手机和平板吗?在手机的UI布局设计过程中,主要是定义其中View和ViewGroup对象的层级结构。如果把这些结构模块化,就可以直接在屏幕转换角度或在平板电脑等大屏幕的布局上使用了。Fragment出现的初衷就是为了解决这样的问题。
  3.1.1Fragment的概念
  Fragment是Activity中用户界面的一部分,Fragment是一种灵活的、可重用UI组件。可以把一个Fragment看成是Activity的一个布局模块,概念上可以理解成Java语言中Frame中的Panel,可以容纳具有某种层次结构的View和ViewGroup对象。
  Android系统从Android 3.0(API level 11)开始推出Fragment,主要目的是支持多屏幕更加动态和灵活的UI设计。用户界面设计时,把一个Activity切分成多个Fragment,那么在把App从手机屏幕迁移到大屏幕时,布局设计就不再需要改变和管理Fragment内部的View层次结构,而可以重点考虑Activity的显示外观了。
  例如,一个应用在手机中使用Activity A显示文章列表,Activity B显示列表中对应的文章内容。当用户单击Activity A中文章列表的一项时,Activity A启动Activity B,在Activity B中显示选中的文章内容,见图3.1右图。如果每一个Activity都使用一个Fragment来容纳界面上的View对象,在设计这个应用在平板电脑的布局时,就可以不必考虑具体每一个图形控件的排列位置和关系,只需要考虑屏幕的容纳空间,适合排列哪些Fragment,考虑用户操作时的友好性。这里在一个Activity中同时并排显示两个Fragment,见图3.1左图。如果用户单击左边Fragment文章列表中的一项,选中的文章内容直接显示在右边的Fragment B中,不需要在启动另一个Activity,也使App的显示界面更友好美观。〖1〗基于Android平台的移动互联网应用开发(第2版)第3章Fragment和图形控件[3]〖3〗图3.1Fragment的使用实例
  Fragment必须放置在Activity中使用,不能独立存在。Fragment具有自己的生命周期,但它的生命周期也直接受所在的Activity生命周期的影响,例如当一个Activity被销毁时,所包含的所有Fragment也都被销毁了。一个Activity中可以包含多个Fragment,每个Fragment都定义自己的布局,并在生命周期中的回调方法中定义自己的动作。Fragment之间是相互独立的,Activity通过回退栈来管理每个Fragment发生的事件,每一个对Fragment操作的事件,都会添加到会退栈中。通过回退栈,允许用户通过回退键取消已经执行的动作。
  Activity的生命周期,直接影响Fragment的生命周期。在Activity状态转换时,生命周期中每一个回调方法的调用,都导致其中的Fragment对应的回调方法的调用。与Activity类似,Fragment以三个状态存在: Resumed、Paused和Stopped。在状态之间转换时,系统会调用相应的回调方法。下面以一个应用实例,来详述Fragment的创建和使用(见图3.2)。
  图3.2Activity Fragment的生命周期
  Fragment状态之间转换时,会有多个事件发生,每一个事件都会有Fragment回调方法调用。这些事件对应的回调方法如下:
   onAttach()在Fragment对象添加到Activity中时调用。
   onCreate()在创建Fragment对象时调用。
   onCreateView()在Fragment绘制用户界面时调用。
   onActivityCreated()所在Activity和Fragment的UI界面创建时调用。
   onStart()在任何UI变化时,Fragment开始变为可视状态时调用。
   onResume()在Fragment开始变为运行状态时调用。
   onPause()在Fragment运行状态结束,线程挂起,所在Activity不再是前台界面时调用。
   onSaveInstanceState()在Fragment运行状态结束,保存UI状态时调用时。
   onStop()在可见状态结束时调用。
   onDestroyView()在Fragment视图被删除时调用。
   onDestroy()在Fragment生命周期结束时调用。
   onDetach()当Fragment被所在Activity删除时调用。
  Activity中的每一个Fragment都是Fragment类的子类。在定义Fragment时,除了可以直接使用Fragment类,还有一些子类可以使用。例如,DialogFragment,直接定义浮动显示的对话框;ListFragment,已经定义好了一个列表的显示;PreferenceFragment,可以把偏好对象的系列显示成一个列表。
  在进行UI布局设计时,考虑把每一个Fragment都设计成Activity的可重用组件。这样,一个设计好的Fragment不仅可以在多种屏幕设计时使用,也可以由同一设备的多个Activity使用。在构建Activity时,既可以静态使用多个Fragment,也可以在Activity运行时根据用户的交互情况,对Fragment进行添加、移除、替换以及执行其他动作。
  下面详述Fragment的创建和使用。
  3.1.2创建和使用Fragment
  在Activity中使用Fragment,可以通过XML布局文件先定义Fragment的UI布局,然后直接在Activity的XML布局文件中引用定义好的Fragment。通过这种方式在Activity使用Fragment的方法,称为在Activity中静态添加Fragment。
  在Activity中静态添加Fragment需要完成下面几项工作:
  (1) 创建Activity子类和Fragment子类。
  (2) 定义Fragment布局。
  (3) 添加Fragment布局到Activity布局中。
  (4) Fragment中事件处理。
  (5) 在Manifest文件中注册Activity。
  下面为了讨论静态添加Fragment的过程,在Android Studio建立一个新的App项目,命名为C03Fragment,主Activity命名为MainActivity,Company Domain定义为uibe.edu.cn,实现如图3.3所示的运行显示效果。在这个例子用户界面的Activity中,设置了两个Fragment,其中一个Fragment显示图片列表,另一个显示大图片和图片描述,并实现了单击列表中图标在另一个Fragment中显示图片和描述的事件处理。
  图3.3Fragment实例效果
  下面通过这个例子,详述静态添加Fragment具体的步骤和代码。
  1.创建Activity和Fragment子类
  在这个例子中,在MainActivity中显示两个Fragment的UI定义内容。首先打开MainActivity,将其继承的父类改为FragmentActivity,见代码3.1。在修改完成后,按Alt+Enter键,导入所需的java包。
  代码3.1修改MainActivity类public class MainActivity extends FragmentActivity {
  …
  }
  然后,创建Fragment子类。在Android Studio的Project视图中,右击app,选择New→Fragment→Fragment(Blank),在Configure Component对话框中,设置Fragment Name为PictureFragment,选定默认的Fragment Layout Name,取消选中其下面的两个复选框,单击Finish按钮。用同样的步骤创建另一个TinyFragment类,见图3.4。
  Fragment与Activity有类似的周期,在创建Fragment时,如果没有取消选中图3.4中的复选框,Fragment的类中会列出所有生命周期的回调函数。
  在这个例子中,PictureFragment只需要在onCreateVeiw()中,使用下面的代码获取XML布局文件定义的Fragment布局就可以了。后面可以根据需要,在必要的生命周期的回调函数中添加动作。inflater.inflate(R.layout.fragment_picture, container, false);
  图3.4创建Fragment
  2. 定义Fragment布局
  Fragment的XML布局定义与Activity类似,都是在某个布局内放置布局和组件来定义UI的显示层次和结构。这里,首先把要显示的图片复制到res/drawable目录下,形成图片资源文件,然后打开res/layout目录下PictureFragment的布局文件fragment_pciture.xml,添加UI界面需要的ImageView和TextView,各属性及其他具体设置等完整的代码见代码3.2。其中android:weight表示组件在布局中显示时所占的比重,也就是比例大小。
  代码3.2fragment_picture.xml
    android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  android:background="@android:color/background_dark">
    android:id="@+id/imageView_show"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_weight="3"
  android:contentDescription="@string/swan"
  android:src="@drawable/swan1_1">
    android:layout_width="match_parent"
  android:layout_height="100dp"
  android:layout_weight="1"
  android:text="This is fragment 1"
  android:layout_margin="10dp"
  android:textColor="@android:color/holo_green_light" />
  同样打开res/layout目录下TinyFragment的布局文件fragment_tiny.xml,使用水平滚动视图HorizontalScrollView,添加图标的滚动功能,并使用一个ImageView定义需要显示的一个小图标,各属性及其他具体设置等完整的代码见代码3.3。如果要在Fragment中添加更多的ImageView,可以按代码3.3中的ImageView控件的设置,在添加的LinearLayout中,注意设置每个ImageView不同的ID值。
  在本章的例子中,共添加了六个ImageView,以方便看到滑动的效果。
  代码3.3fragment_tiny.xml  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/scrollView"
  android:background="@android:color/darker_gray">
    android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  android:background="@android:color/darker_gray">
    android:id="@+id/tinyImage1"
  android:layout_width="70dp"
  android:layout_height="70dp"
  android:contentDescription="@string/swan"
  android:src="@drawable/swan1"
  android:layout_margin="10dp" />
  3. 添加到Activity中
  每一个Fragment都必须放置在一个FragmentActivity中,FragmentActivity是Android的Support Library中专门用于Fragment处理的Activity子类,从 API level 11开始支持。如果是低于API level 11版本的Android系统,就直接使用Activity。
  在FragmentActivity的XML布局文件中直接定义所使用的Fragment,以及它们在Activity中的层次和结构,完成Fragment与这个FragmentActivity的关联过程,就是静态添加Fragment的过程。
  在这个例子中,MainActivity的XML布局文件activity_mian.xml中定义了界面所需要使用的两个Fragment: PictureFragment和TinyFragment,以及它们的层次结构和属性,完整代码见代码3.4。
  ……

前言/序言

  关于本书
  随着3G和触摸屏的技术发展,移动智能终端,即智能手机和平板电脑,已经成为人们日常通信和信息处理的工具,移动互联网正在改变人们的交流和生活方式。作为移动智能终端两大操作系统之一,Android的影响力已经渗透到移动领域以外,特别是物联网和电视等平台,Android应用程序也由个人应用逐步向企业应用扩展。掌握Android技术的人才就业前景非常广泛。
  我们编写本书主要有两个目的:
  全面系统地提供Android开发的基础知识,基于Android Studio开发环境提供编程示例。在本书的编写中把Android的基础知识,与自己的教学经验和学习的体会结合起来,希望能够引导Andorid技术学习者快速入门,系统地掌握Android编程技术。
  由于目前Android技术更新很快,本书内容中的概念和原理主要参考Android的官方网站,尽量做到既准确又易于理解,代码示例均通过实际调试,可运行。
  本书主要围绕 Android 技术,讲述如何利用 Android 相关技术,开发移动终端的互联网应用程序。全书共分为10章。
  第1章概述使用Android技术在移动终端开发的基础知识,包括Android的基本常识和技术框架,并介绍如何搭建Android开发环境Android Studio和Android应用程序项目的结构。
  第2章主要介绍Android的四大基础组件之一Activity、布局和资源的概念,介绍如何使用Android的Activity和布局管理器来设计移动终端的用户图形界面。
  第3章主要介绍三部分内容。首先介绍Fragment的概念,Fragment的生命周期以及使用Fragment静态创建和动态创建用户界面的具体步骤和代码;第二部分主要介绍Android用户界面的事件处理机制,图形界面中的常用视图控件如何使用及如何进行事件处理,其中包括按钮控件中的 Button、RadioButton、Checkbox和ToggleButton,Toast控件,以及文本控件中的TextView和EditText;最后使用例子说明了如何对界面进行处理,使其显示效果多样化。〖1〗基于Android平台的移动互联网应用开发(第2版)前言[3]〖3〗第4章主要介绍了Android应用程序的浏览模式。从Android 3.0开始,Android系统的应用浏览模式发生了较大的改变,引入了向上和返回的设计原则,并且提供了相应的设计组件,其中包含菜单和动作条等。本章主要介绍菜单模式和动作条模式的实现。
  第5章主要介绍Android系统的应用程序之间发送和接收消息的机制。介绍Android实现发送和接收消息的Intent、BroadcastReceiver组件和Notification组件的概念、用途和实现方法。
  第6章主要介绍Android系统的多任务机制、主线程的概念和实现多任务的原理,以及在Androd系统中如何使用handler或AsyncTask实现应用程序的多任务。在多任务的基础上,本章的另一部分介绍Android的四大组件之一Service的概念和基本知识,以及在应用程序中实现Service的两种方式。
  第7章主要介绍Android系统实现应用程序数据存储的机制,包括用户偏好的存取、文件的读取与保存和SQLite数据库的创建与操作。
  第8章主要介绍Android的四大组件之一ContentProvider的概念和相关知识,以及如何创建和使用ContentProvider,如何通过数据绑定,使用适配器、视图对象和SQLite数据库的ContentProvider实现数据加载,最终向用户显示数据。
  第9章主要介绍Android有关触摸屏的应用程序开发。包括触摸事件的定义、触摸事件的传递机制、触摸点移动的速率跟踪、多点触控、手势识别和拖放处理等。
  第10章有两个部分。第一部分主要介绍Android应用程序如何通过GPS和Android网络位置提供器,获取位置信息,实现定位服务;第二部分主要介绍Android应用程序如何使用Google公司提供的Google Maps API,实现应用程序中的Goolge地图的功能。
  本书基本囊括了Android技术体系中的基础部分,并使用短小易懂的例子详细说明了如何应用。本书的不足之处在于,由于时间和篇幅的原因,本书只是编写了Android技术中最基础的部分,Android技术中关于网络互联、动画、游戏、服务器和其他更深层次的应用等都没有涉及,不能全面覆盖Android技术,还请读者谅解。并且,由于水平的原因,在本书的编写过程中可能存在一些对 Android技术及移动互联网技术介绍不全面或者表述疏漏的地方,敬请读者批评指正。
  读者对象
  本书是Android技术入门的基础类书籍,通过本书的学习读者可以牢固掌握Android编程技术的基本概念、原理和编程方法,能够进行应用程序的实际开发。
  本书适合对Java编程有一定基础、希望掌握Android程序设计技术的读者,也适合作为高等学校计算机专业的教材,还可作为Android程序设计者的培训教材。
  致谢
  在本书的写作过程中,得到了很多人士的悉心帮助,在此谨向给予本书帮助的诸位及本书所参考的官方网站和网站社区表示诚挚的感谢。
  特别感谢对外经济贸易大学信息学院和远程学院,为本书的教学和实践提供了支持平台。
  特别感谢美国内华达大学拉斯维加斯分校(UNLV)的Yingtao Jiang教授和他的实验室,给予了本书很大的帮助和支持,并提出了中肯的意见。
  特别感谢清华大学出版社的编辑们,他们为这本书的再版做了很多辛苦工作。
  编者
  2017年5月