Android 基础入门教程

660课时
514学过
8分

2. 基本 UI 控件

View与ViewGroup的概念

LinearLayout(线性布局)

weight(权重)属性详解

为LinearLayout设置分割线

LinearLayout的简单例子

LinearLayout注意事项

RelativeLayout(相对布局)

TableLayout(表格布局)

如何确定行数与列数

TableLayout三个常用属性

TableLayout使用实例

FrameLayout(帧布局)

FrameLayout常用属性

FrameLayout实例演示1

FrameLayout实例演示2

FrameLayout实例演示3

GridLayout(网格布局)

GridLayout使用实例

GridLayout用法归纳

AbsoluteLayout(绝对布局)

AbsoluteLayout使用示例

TextView(文本框)

TextView基础属性详解

TextView实例演示1

TextView实例演示2

TextView实例演示3

使用autoLink属性识别链接类型

TextView玩转HTML

SpannableString&SpannableStringBuilder定制文本

设置TextView字间距和行间距

TextView自动换行

EditText(输入框)

EditText设置默认提示文本

获得焦点后全选组件内所有文本内容

限制EditText输入类型

设置最小行、最多行和单行等

设置文字间隔和英文字母大写类型

控制EditText距离

设置EditText获得焦点

EditText光标位置的控制

带表情的EditText的简单实现

带删除按钮的EditText

Button(按钮)与ImageButton(图像按钮)

StateListDrawable简介

实现按钮的按下效果

使用颜色值绘制圆角按钮

实现Material Design水波效果的Button

ImageView(图像视图)

src属性和background属性的区别

adjustViewBounds设置缩放是否保存原图长宽比

scaleType设置缩放类型

最简单的绘制圆形的ImageView

RadioButton(单选按钮)&Checkbox(复选框)

RadioButton基本用法与事件处理

CheckBox基本用法与事件处理

自定义点击效果

改变文字与选择框的相对位置

修改文字与选择框的距离

开关按钮ToggleButton和开关Switch

ToggleButton核心属性讲解

Switch核心属性讲解

ToggleButton和Switch使用示例

ProgressBar(进度条)

ProgressBar常用属性讲解与基础实例

使用动画来替代圆形进度条

自定义圆形进度条

SeekBar(拖动条)

SeekBar基本用法

简单SeekBar定制

RatingBar(星级评分条)

RatingBar基本使用

RatingBar定制环节

ScrollView(滚动条)

Date & Time组件(上)

TextClock(文本时钟)

AnalogClock(模拟时钟)

Chronometer(计时器)

Date & Time组件(下)

DatePicker(日期选择器)

TimePicker(时间选择器)

CalendarView(日历视图)

Adapter基础讲解

MVC模式的简单理解

Adapter概念解析

Adapter代码示例

ListView简单使用

BaseAdapter优化

ListView的焦点问题

ListView之checkbox错位问题解决

ListView的数据更新问题

构建一个可复用的自定义BaseAdapter

ListView Item多布局的实现

GridView(网格视图)的基本使用

Spinner(列表选项框)的基本使用

AutoCompleteTextView(自动完成文本框)的基本使用

ExpandableListView(可折叠列表)的基本使用

ViewFlipper(翻转视图)的基本使用

Toast(吐司)的基本使用

Notification(状态栏通知)详解

AlertDialog(对话框)详解

其他几种常用对话框基本使用

PopupWindow(悬浮框)的基本使用

菜单(Menu)

ViewPager的简单使用

DrawerLayout(官方侧滑菜单)的简单使用

4. 四大控件

Activity初学乍练

Activity的概念与Activity的生命周期图

Activity/ActionBarActivity/AppCompatActivity的区别

Activity的创建流程

onCreate()一个参数和两个参数的区别

启动一个Activity的几种方式

横竖屏切换与状态保存的问题

系统给我们提供的常见的Activity

Activity初窥门径

Activity间的数据传递

多个Activity间的交互(后一个传回给前一个)

知晓当前是哪个Activity

随时关闭所有Activity

完全退出App的方法

双击退出程序的两种方法

为Activity设置过场动画

Bundle传递数据的限制

使用命令行查看当前所有Activity的命令

设置Activity全屏的方法

onWindowFocusChanged方法妙用

定义对话框风格的Activity

Activity登堂入室

Activity,Task和Back Stack的一些概念

Task的管理

Activity的四种加载模式详解

Activity拾遗

Service初涉

线程的相关概念

Service与Thread线程的区别

Service的生命周期图

生命周期解析

生命周期验证

Service进阶

IntentService的使用

Activity与Service通信

一个简单前台服务的实现

简单定时后台线程的实现

Service精通

IBinder和Binder是什么?

Binder机制浅析

为何Android使用Binder机制来实现进程间的通信?

AIDL是什么?

AIDL实现两个进程间的简单通信

AIDL实现两个进程间的简单通信-服务端

AIDL实现两个进程间的简单通信-客户端

传递复杂数据的AIDL Service

直接通过Binder的onTransact完成跨进程通信

Android 5.0后Service一些要注意的地方

BroadcastReceiver牛刀小试

BroadcastReceiver是什么?

两种广播类型

接收系统广播

发送广播

BroadcastReceiver庖丁解牛

本地广播

Android 4.3以上版本监听开机启动广播的问题解决

常用的系统广播总结

ContentProvider初探

ContentProvider概念讲解

使用系统提供的ContentProvider

自定义ContentProvider

通过ContentObserver监听ContentProvider的数据变化

ContentProvider再探:Document Provider

简单走下文档

Android 4.4 获取资源路径问题

Intent的基本使用

显式Intent与隐式Intent的区别

Intent的七个属性

显式Intent使用示例

隐式Intent详解

常用系统Intent合集

Action在哪里查?

Intent之复杂数据的传递

Intent传递简单数据

Intent传递数组

Intent传递集合

Intent传递对象

Intent传递Bitmap

定义全局数据

单例模式传参

7. 网络编程

Android网络编程要学的东西与Http协议学习

Android与互联网交互的三种方式

初识Http协议

什么是Http协议?

Http 1.0 与 Http 1.1的区别

Http协议的底层工作流程

Http协议的业务流程

Http的几种请求方式

Get和Post的对比

Http状态码合集

Http协议的特点

Android Http请求头与响应头

HTTP请求之消息头

HTTP响应之响应头

代码验证响应头的作用

Android HTTP请求方式:HttpURLConnection

HttpURLConnection的介绍

HttpURLConnection的使用步骤

HttpURLConnection使用示例

Cookie问题的处理

使用HttpURLConnection发送PUT请求

Android HTTP请求方式:HttpClient

HttpClient使用流程

HttpClient使用示例

HttpClient抓数据示例

使用HttpPut发送Put请求

Android XML数据解析

XML数据要点介绍

三种解析XML方法的比较

SAX解析XML数据

DOM解析XML数据

PULL解析XML数据

参考代码下载

Android JSON数据解析

Json是什么?

Json与XML的比较

Json的格式规范

Android给我们提供的Json解析类

Json字符串解析示例1

Json字符串解析示例2

Android 文件上传

项目用到的图片上传的关键方法

使用HttpConnection上传文件

Android 文件下载(1)

普通单线程下载文件

普通多线程下载

使用DownloadManager更新应用并覆盖安装

示例代码下载

Android 文件下载(2)

Android多线程断点下载的代码流程解析

Step 1:创建一个用来记录线程下载信息的表

Step 2:创建一个数据库操作类

Step 3:创建一个文件下载器类

Step 4:自定义一个下载线程类

Step 5:创建一个DownloadProgressListener接口监听下载进度

Step 6:编写我们的布局代码

Step 7:MainActivity的编写

Step 8:AndroidManifest.xml文件中添加相关权限

参考代码下载

Android 调用 WebService

WebService简介

去哪里获取WebService服务

第三方jar包的准备

获取相关的一些参数

注册并启用相关WEB服务

调用WebService的代码示例

参考代码下载

WebView(网页视图)基本用法

什么是WebView?

WebView相关方法

WebView常见需求1:根据URL加载网页

WebView常见需求2:滚动事件的监听

WebView常见需求3:滚动条的问题

WebView常见需求4:设置缩放以及自适应屏幕

WebView常见需求5:获取WebView的Cookie数据

WebView常见需求6:设置WebView的Cookie数据

示例代码下载

WebView和JavaScrip交互基础

核心步骤讲解

HTML通过JS显示Toast与普通列表的对话框

HTML通过JS调用三种不同的对话框

HTML通过JS读取Android联系人并显示

示例代码下载

Android 4.4后WebView的一些注意事项

多线程

线程阻塞

evaluateJavascript() 方法

处理WebView中url的跳转

UserAgent变化

使用addJavascriptInterface()的注意事项

Remote Debugging

N5读取联系人的问题解决

WebView文件下载

调用其它浏览器下载文件

自己写线程下载文件

WebView缓存问题

缓存的分类

为WebView开启缓存功能

删除WebView的缓存数据

示例代码下载

WebView处理网页返回的错误码信息

页面错误,加载自定义网页

页面错误,显示相应的View

示例代码下载

Socket学习网络基础准备

OSI七层网络模型浅析

TCP/IP四层模型

TCP/UDP区别讲解

Java中对于网络提供的几个关键类

基于TCP协议的Socket通信(1)

什么是Socket?

Socket通信模型

Socket服务端的编写

Socket客户端的编写

增强版案例:小猪简易聊天室

基于TCP协议的Socket通信(2)

运行效果图

实现流程图

代码示例

示例代码下载

基于UDP协议的Socket通信

服务端实现步骤

客户端实现步骤

8. 绘画与动画

Android中的13种Drawable小结 Part 1

Drawable资源使用注意事项

ColorDrawable

NiewPatchDrawable

ShapeDrawable

GradientDrawable

Android中的13种Drawable小结 Part 2

BitmapDrawable

InsetDrawable

ClipDrawable

RotateDrawable

AnimationDrawable

Android中的13种Drawable小结 Part 3

LayerDrawable

TransitionDrawable

LevelListDrawable

StateListDrawable

Bitmap(位图)全解析 Part 1

了解Bitmap,BitmapFactory,BitmapFacotry.Options

Bitmap常用方法

获取Bitmap位图

获取Bitmap的相关信息

抠图片上的某一角下来

使用Bitmap进行截屏

Bitmap引起的OOM问题

什么是OOM?为什么会引起OOM?

避免Bitmap引起的OOM技巧小结

及时回收图像

其他方法

三个绘图工具类详解

Paint(画笔)

Canvas(画布)

Path(路径)

动手试试

绘图类实战示例

Paint API之MaskFilter(面具)

BlurMaskFilter(模糊效果)

EmbossMaskFilter(浮雕效果)

注意事项

示例代码下载

Paint API之 Xfermode与PorterDuff详解(一)

AvoidXfermode

PixelXorXfermode

示例代码下载

Paint API之Xfermode与PorterDuff详解(二)

写个例子来验证前面的这个图

示例代码下载

Paint API之Xfermode与PorterDuff详解(三)

实现流程分析

代码实现

示例代码下载

Paint API之Xfermode与PorterDuff详解(四)

要实现的效果图以及实现流程分析

代码实现

示例代码下载

Paint API之ColorFilter(颜色过滤器)(1/3)

相关常识的普及

ColorMatrix的解读

写代码来验证ColorMatrix所起的作用

使用ColorMatrix的三个方法处理图像

示例代码下载

Paint API之ColorFilter(颜色过滤器)(2/3)

代码示例

示例代码下载

Paint API之ColorFilter(颜色过滤器)(3/3)

测试代码示例

示例代码下载

Paint API之PathEffect(路径效果)

子类作用与构造方法参数分析

写代码来验证各自的效果

示例代码下载

Paint API之Shader(图像渲染)

使用代码示例

示例代码下载

Paint几个枚举/常量值以及ShadowLayer阴影效果

get枚举用法

Paint.Style

Paint.Cap

Paint.Join

Paint.Align

Paint.FontMetrics和Paint.FontMetricsInt

ShadowLayer设置阴影效果

Paint API之Typeface(字型)

字体的可选风格

可选字体对象(Typeface)

自定义创建字型

使用代码示例

示例代码下载

Canvas API详解(Part 1)

translate(平移)

rotate(旋转)

scale(缩放)

skew(倾斜)

Canvas图层的概念以及save()和restore()详解

saveLayer()与restoreToCount()讲解

示例代码下载

Canvas API详解(Part 2)剪切方法合集

Region.Op组合方式详解

Region.Op使用实例

clipRect方法详解

clipPath方法详解

示例代码下载

Canvas API详解(Part 3)Matrix和drawBitmapMesh

Matrix中的几个常用的变换方法

Matrix使用示例

drawBitmapMesh扭曲图像

示例代码下载

Android动画合集之帧动画

帧动画概念以及用法

使用示例1

使用示例2

示例代码下载

Android动画合集之补间动画

补间动画的分类和Interpolator

各种动画的详细讲解

写个例子来体验下

动画状态的监听

为View动态设置动画效果

为Fragment设置过渡动画

为Activity设置过场动画

进入APP后登陆注册按钮从底部弹出动画效果

示例代码下载

Android动画合集之属性动画-初见

属性动画概念

ValueAnimator简单使用

ObjectAnimator简单使用

组合动画与AnimatorListener

使用XML来编写动画

示例代码下载

Android动画合集之属性动画-又见

Evaluator介绍

Evaluator使用示例

Evaluator示例增强版

Interpolator(补间器)

Interpolator的内部实现机制

自定义Interpolator

ViewPropertyAnimator

示例代码下载

10. 系统服务

TelephonyManager(电话管理器)

获得TelephonyManager的服务对象

调用拨号器拨打电话号码

获取Sim卡信息与网络信息

获取手机的信号强度

监听手机的所有来电

黑名单来电自动挂断

示例代码下载

SmsManager(短信管理器)

调用系统发送短信功能

调用系统提供的短信接口发送短信

AudioManager(音频管理器)

获得AudioManager对象实例

相关方法详解

使用示例

Vibrator(振动器)

获得Vibrator实例

可以使用的相关方法

使用示例:设置频率不同的震动器

示例代码下载

AlarmManager(闹钟服务)

Timer类与AlarmManager类区别

获得AlarmManager实例对象

相关方法讲解

使用示例:一个简单的定时任务

代码示例下载

PowerManager(电源服务)

PowerManager是什么

wakelock锁介绍

PowerManager怎么用

需要的权限

WindowManager(窗口管理服务)

WindowManager介绍

如何获得WindowManager实例

WindowManager使用实例1

WindowManager使用实例2

WindowManager使用实例3

WindowManager使用实例4

代码示例下载

LayoutInflater(布局服务)

Layout是什么?

LayoutInflater的用法

纯Java代码加载布局

纯Java代码加载布局的流程

Java代码动态添加控件或xml布局

LayoutInflater的inflate()方法源码

WallpaperManager(壁纸管理器)

WallpaperManager的基本用法

调用系统自带的壁纸选择功能

将Activity的背景设置为壁纸背景

定时换壁纸的Demo

示例代码下载

传感器专题1:相关介绍

如何查看自己手机所支持的传感器有哪些?

Sensor传感器相关的方法以及使用套路

示例代码下载

传感器专题2:方向传感器

三维坐标系的概念

方向传感器的三个值

简单的Demo帮助我们理解三个值的变化

一个简易版的文字指南针示例

示例代码下载

传感器专题3:加速度/陀螺仪传感器

加速度传感器(Accelerometer sensor)

简易计步器的实现

陀螺仪传感器(Gyroscope sensor)

示例代码下载

传感器专题4:其他传感器了解

磁场传感器(Magnetic field sensor)

距离传感器(Proximity sensor)

光线传感器(Light sensor)

气压传感器(Pressure sensor)

温度传感器(Temperature sensor)

传感器模拟工具:SensorSimulator

Android GPS初涉

定位相关的一些API

获取LocationProvider的例子

判断GPS是否打开以及打开GPS的两种方式

动态获取位置信息

临近警告(地理围栏)

示例代码下载

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
5分钟

Android系统特性与平台架构

系统特性:

  • 应用程序框架支持组件的重用与替换(app发布时遵守了框架的约定,其他app也可以使用该模块)
  • Dalvik虚拟机:专门为移动设备优化 -集成的浏览器:开源的WebKit引擎
  • SQLite结构化的数据存储
  • 优化的图形库,多媒体支持,GSM电话技术,蓝牙等
  • 采用软件叠层方式构建

平台架构图:

架构的简单理解:

1. Application(应用程序层) 我们一般说的应用层的开发就是在这个层次上进行的,当然包括了系统内置的一组应用程序,使用的是Java语言

2. Application Framework(应用程序框架层) 无论系统内置或者我们自己编写的App,都需要使用到这层,比如我们想弄来电黑名单,自动挂断电话,我们就需要用到电话管理(TelephonyManager) 通过该层我们就可以很轻松的实现挂断操作,而不需要关心底层实现

3. Libraries(库) + Android Runtime(Android运行时) Android给我们提供了一组C/C++库,为平台的不同组件所使用,比如媒体框架;而Android Runtime则由Android核心库集 + Dalvik虚拟机构成,Dalvik虚拟机是针对移动设备的虚拟机,它的特点:不需要很快的CPU计算速度和大量的内存空间;而每个App都单独地运行在单独的Dalvik虚拟机内每个app对于一条Dalvik进程)而他的简单运行流程如:

4. Linux内核 这里就是涉及底层驱动的东西了,一些系统服务,比如安全性,内存管理以及进程管理等

本节对Android的历史背景以及现状进行了了解,然后简单分析了Android的系统特性以及系统架构,这些概念性的东西,我们了解了解即可,而下一节我们将开始Android环境的搭建!