《Google Android开发入门与实战》
《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开发入门与实战》相关推荐
- ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- 信息学奥赛真题解析(玩具谜题)
玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...
- 信息学奥赛之初赛 第1轮 讲解(01-08课)
信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...
- 信息学奥赛一本通习题答案(五)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通习题答案(三)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
- 信息学奥赛一本通题目代码(非题库)
为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...
- 信息学奥赛一本通(C++版) 刷题 记录
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...
- 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离
首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...
最新文章
- poj 1006 生理周期
- mongodb update
- Qt多线程学习:创建多线程
- 工业触屏系统开发经验分享
- 清华大学计算机学院赵成钢哪里人,清华大学16位学霸简历吓坏网友
- 计算机课听课评议,听课优缺点评语
- jyputer notebook 、jypyter、IPython basics
- 中国邻苯二甲酸二环己酯(DCHP)行业市场供需与战略研究报告
- WCF(四) 绑定
- X64上的IIS調用32位的DLL方法
- 七牛云:ckeditor JS SDK 结合 C#实现多图片上传。
- Android 系统源码中添加 androidx 依赖
- C++银行管理系统设计分析及程序设计介绍
- msp430中如何连续对位进行取反_【万泉河】论PLC编程中的高内聚与低耦合
- rs232与db9接线方式
- 基于高通SNPE推理引擎的yolov5目标检测算法
- stm32f407 hal uasrt 1 使用
- C# 证书 .cer, .pfx 创建,加解密 导出为 Base64编码文件
- 多智能体通信:基于通信的多智能体强化学习研究综述
- 小镇走出的大厂女程序员,也害怕努力后仍一无所获