《Google Android开发入门与实战》

2007年11月Google推出了开放的Android平台

第1章掀起你的盖头来—初始Android

Android是基于Java并运行在Linux内核上的操作系统,这个系统是轻量级的,但是功能很全面。

“开放手机联盟”open handset alliance,google组建的共同开发名为Android的开放源代码的移动操作系统。

2007年11月12日发布第一版Android SDK。

2008年10月21日,Android被宣布开放源代码。

第2章工欲善其事必先利其器—搭建Android开发环境

JDK、Android SDK、eclipse、ADT插件

第3章清点可用资本—Android SDK介绍

第4章赚钱的市场—Android Market及应用发布

2008年8月28日,Google公司透露将要推出新一代网上平台Android Market,并将其定位为开放的内容分享系统。

什么是APK文件?APK是Android Package的缩写,即Android安装包。

Android Market要求发布的应用必须是经过签名的,生成签名文件有两种方式,一种是使用命令行方式,另一种是借助ADP插件生成签名文件。

第5章千里之行始于足下—第一个应用Hello World

在Android当中基本上所有的UI都是由View或者View的子类实现的。

第6章磨刀不误砍柴工—Android应用程序结构介绍

Android作为一个移动设备的开发平台,其软件层次结构包括了一个操作系统(OS)、中间件(MiddleWare)和应用程序(Application)。

应用程序、应用程序框架:Android本身提供了桌面、联系人、电话、浏览器等众多核心应用。普通开发者可以使用Android核心应用程序使用的系统API。

库和运行环境:系统C库等等..

Android的核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。

一般来说Android程序主要由4部分组成:Activity、Broadcast Intent Receiver、Service、Content Provider。

Activity:一般代表手机屏幕的一屏,如果把手机比作一个浏览器,那么Activity就相当于一个网页。在activity当中,我们可以添加一些View,并且可以对这些View做一些事件的处理。多个Activity之间相互跳转有可能有返回值。Activity是由Android系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期。

通过Intent我们可以在多个Activity之间进行跳转。

Broadcast Intent Receiver:可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。

Service:是一种程序,它可以运行很长的时间,但是它却没有用户界面。

工程目录:

src:源文件存放目录;

res:这个目录主要放置应用用到的资源文件;分3个目录进行存放。

drawable:放置应用用到的图片资源;

Layout:放置用到的布局文件;

values:放置字符串(string.xml)、颜色(colors.xml)、数组(arrays.xml);

AndroidManifest.xml:相当于应用的配置文件。在这个文件里边,必须声明应用的名称,应用所用到的Activity、Service、以及receiver等。

第7章良好的学习开端—Android基本组件介绍

视图组件View:是Android当中最基本的UI类;

视图容器组件Viewgroup:作用就是View的容器,它负责对添加进Viewgroup的这些View进行布局;

布局组件Layout:是Viewgroup的实现类;

布局参数LayoutParams:决定View在Viewgroup中的位置;

setContentView(R.layout.main)负责当前的Activity与main.xml文件相关联。

LinearLayout:子元素按垂直或水平方向排列;

FrameLayout:好比一块在屏幕上提前预定好的空白区域;

RelativeLayout:相对布局类;

语法:

Android:id定义组件的id;

Android:layout_width定义组件的宽度,wrap_content(仅仅包裹住内容)fill_parent(填充父容器)

Android:layout_height定义组件的高度

Android:background=“@drawbale/blue”定义组件的背景

Android:padding=“10dip”,dip的意思是依赖于设备的像素,padding表示填充,margin表示边距

Android:layout_below=“@id/label”放在id为label的组件下方

Android:layout_alignParentRight=“true”和父容器的右边齐平

Android:layout_marginLeft=“10dip”左边距

Android:layout_toLeftOf=“@id/cancel”设置此组件在id为cancel的组件的左边

Android:layout_alignTop=“@id/cancel”设置此组件和id为cancel组件的高度齐平

LayoutInflater:这个类用来将XML的布局文件变成一个VIew的类。

TableLayout:是一种表格式的布局;

TableRow:定义了表格布局里的一行;

添加一个Activity,在onCreate方法中关联相应的xml布局文件,在AndroidManifest.xml文件中添加Activity的申明;Activity之间的切换通过Intent来进行;

ScrollView视图组件:直接在LinearLayout外面再增加ScrollView组件即可;

@符号:这个符号提示XML文件的解析器应当对@后的名字进行解析,例如@string/button1,那么解析器会从values/string.xml里边读取button1这个变量的值。

Android应用的灵魂—Intent和Activity

Intent:是一次即将操作的抽象描述;

Intent的作用有3种:

(1)启动一个新的Activity并且可以携带数据;

(2)通过Intent来启动一个服务(Service);

(3)通过Intent来广播一个事件。

Bundle:是一个类型安全的容器,它的实现其实就是对HashMap做了一层封装。

Activity传递数据,传名值对:intent.putExtra(“activityMain”,”要传递的数据”); startActivityForResult(intent,REQUEST_CODE);

获取数据:Bundle extras = getIntent().getExtras();   if(extras != null){data = extras.getString(“activityMain”);}

startActivityForResult()和onActivityResult()可以被认为是一组异步的远程调用,可以获取新的Activity的返回值。

ListAdapter:ListAdapter继承于Adapter,它是ListView和其里边的数据的适配器。

ArrayAdapter:是ListAdapter的一个直接子类,它是一个数组和ListView之间的桥梁。

Android系统默认的布局方式:通过Android.R.layout.XX来进行定义。

SimpleAdapter:通过它可以让ListView当中的每一项里边的内容更加个性化,它是ArrayList和ListView的桥梁,ArrayList的每一项都是一个Map<String,?>类型。

Dialog类:是一切对话框的基类。

第8章移动信息仓库—Android的数据存储操作

桌面系统的文件是所有软件公用的,而Android的应用软件数据是该应用软件所私有的。

几种存储方式:

(1)SharedPreferences对象

(2)文件存储

(3)SQLite存储:SQLite是Android所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库。

(4)Content Provider暴露自己的数据,其他应用通过ContentResolver获取数据

(5)网络存储

第9章我来“广播”你的“意图”—Intent和Broadcast面对面

Intent定义:一个Intent就是一次对将要执行的操作的抽象描述。具体有3种形式:

(1)通过startActivity方法来启动一个新的Activity;

(2)通过broadcast Intent机制可以将一个Intent发送给任何对这个Intent感兴趣的BroadcastReceiver;

(3)通过startService(Intent)或bindService(Intent,ServiceConnection,int)来和后台的Service进行交互。

通过sendBroadcast来广播Intent,通过注册Broadcast Receiver来监听Intent。

第10章一切为用户服务—Service应用实例

从字面理解Service的意义是服务,它是在后台运行,不可交互的一个东西。它跟前面讲解的Activity级别差不多,但是它不能自己运行,需要通过某一个Activity或者其他Context对象来调用,如Context.startService()和Context.bindService()两种方式启动Service。

Service的生命周期方法比Activity要少一些:只有onCreate、onStart、onDestroy。

(1)通过startService启动:调用者退出service不会退出

(2)通过bindService启动:调用者退出service一起退出

Android系统中已经有很多自带Service了,例如常见的AlarmService、GPS Service等。

第11章循序渐进—开发Android应用的基本步骤

(1)实现UI

(2)数据操作和存储

(3)实现多页面跳转

(4)增加Service

(5)完善细节,如AndroidManifest.xml

第12章 Android综合案例一 —RSS阅读器实例

RSS是一个网络站点用来和其他站点之间共享内容的一种简易方式。RSS是基于文本的格式,它是XML的一种形式。

SAX的全名是Simple API for XML,同DOM一样也是一个访问XML文档的接口。

第13章 Android综合案例二 —基于Google Map开发个人移动地图

第14章 Android综合案例三 —基于Android的豆瓣网(Web 2.0)移动客户端开发

第15章 Android综合案例四 —在线音乐播放器

第16章 Android综合案例五 —手机信息查看助手

第17章芝麻开门—Android底层开发和移植概述

《Google Android开发入门与实战》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. poj 1006 生理周期
  2. mongodb update
  3. Qt多线程学习:创建多线程
  4. 工业触屏系统开发经验分享
  5. 清华大学计算机学院赵成钢哪里人,清华大学16位学霸简历吓坏网友
  6. 计算机课听课评议,听课优缺点评语
  7. jyputer notebook 、jypyter、IPython basics
  8. 中国邻苯二甲酸二环己酯(DCHP)行业市场供需与战略研究报告
  9. WCF(四) 绑定
  10. X64上的IIS調用32位的DLL方法
  11. 七牛云:ckeditor JS SDK 结合 C#实现多图片上传。
  12. Android 系统源码中添加 androidx 依赖
  13. C++银行管理系统设计分析及程序设计介绍
  14. msp430中如何连续对位进行取反_【万泉河】论PLC编程中的高内聚与低耦合
  15. rs232与db9接线方式
  16. 基于高通SNPE推理引擎的yolov5目标检测算法
  17. stm32f407 hal uasrt 1 使用
  18. C# 证书 .cer, .pfx 创建,加解密 导出为 Base64编码文件
  19. 多智能体通信:基于通信的多智能体强化学习研究综述
  20. 小镇走出的大厂女程序员,也害怕努力后仍一无所获

热门文章

  1. 基于ARMA-偏tGARCH和DCC-GARCH模型测算CoVaR——R语言实现
  2. Drools规则引擎实践直白总结,Java开发教程入门
  3. 华为2022校园赛——车道渲染
  4. 如何修改论文,能够避开查重?
  5. 喵喵机器人--elasticsearch被入侵删库
  6. 选择日期弹框html,JS——点击文本框弹出选择日期表格
  7. 云服务器子系统,超详尽教程!在Windows 10内置Ubuntu子系统上搭建私有云
  8. Linux中tar压缩命令详解
  9. 一个基于ATMEGA128的直流电机抱死程序
  10. 高中计算机会考操作题frontpage,高中信息技术会考frontpage操作题要点