人人范文网 范文大全

Android开发分享讲稿(修改)

发布时间:2020-03-03 21:34:43 来源:范文大全 收藏本文 下载本文 手机版

讲清楚,do better Android开发入门分享

今天要给大家分享的是Android开发入门,小青青_Lo是我的微博昵称,如果觉得我讲得好,求互粉(*^__^*) 嘻嘻~~

讲解大纲

这个是今天讲解的大纲,首先通过著名Hello world程序对Android开发有一个感性的认识,

之后上升到理性认识,了解android开发的重要组成部分和基本开发流程。Android开发主要包括App组件,App资源和App的配置文件。App组件主要负责和用户交互,处理用户请求;而App Res主要负责用户界面的视图;App Manifest文件主要用来声明App运行所需环境,比如App包含哪些功能模块,API最低最高版本要求,比如Android操作系统版本要求运行设备的性能要求,比如屏幕分辨率,内存空间大小等,用户是否有权限访问一些系统应用程序和系统数据,比如通讯录, GPS位置信息,本地通知服务等。

在讲解Android开发的重要组成部分的过程中会涉及一些简单的实例现场演示来讲述Android开发的基本流程。

欢迎提问

因为我本身是一个Android开发的新手,在加上本身写代码写得少,所以难免会有一些错误和讲得不清楚得地方,欢迎大家提出疑问,提问有奖。如果我答不出来,记下来分享后查资料给大家回答。

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better

为什么要学习Android开发?(此段可以精简下)

Android操作系统目前占移动操作系统78%的市场份额,这个充分说明了android开发市场大需求广。现在大家都知道移动互联网是大势所趋,每天坐公交地铁,一眼望去大家都在忙于刷手机ipad就已经充分说明这点,随着移动互联网的兴起,App开发自然是大势所趋。Android操作系统之所以发展如此迅速,和其开源有着密不可分的关系,开源意味着便于扩展和学习,以及使用。

之后我们简单介绍下Android系统架构,一共分为四层,最下层的是linux内核,负责内存管理,进程调度,网络协议以及各种设备驱动等,再上面是各种系统运行库,其主要是应用框架层和linux内核的重要纽带,而我们下载的android SDK处于应用框架层,主要负责给android应用开发提供各种基础服务,我们平时使用的微博,微信等app应用程序就处于应用层。 简要介绍了android系统,我们现在开始anroid开发之旅。 部署Android开发环境

Android开发第一步就是部署android开发环境,部署android开发环境有两种方式:方法一是JDK+android studio, 方法二是JDK+SDK+Eclipse。我们现在比较下这两种的特性,首先从部署便捷性来看AndroidStudio要比安装SDK步骤少,更方便简单。之前小超分享框架的时候说应用性和性能一般成反比,Android Studio的IDE好用,这同样意味着其性能比SDK的要低,所以其编译运行速度Eclipse显然比Android Studio快,内存消耗低。运行Android Studio一般将我可怜本本拖垮。如果从开发效率来看,方法一显然要高于方法先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better 二,从代码架构来看,AS的Java/resoure/Manifest三个文件夹就一一映射了Android开发的三个重要组成部分,而Eclipse的代码架构相比之下稍显混乱。而且Android Studio的UI可视化也比Eclipse的更为强大好用。对于运行机器要求,显然Android Studio比JDK的要求高。

综上所述, AS作为google的官方开发工具,再者从大家最关心的开发效率来看,AS是Android开发的IDE最佳之选

AS是基于IDEA的,好好看看AS好在哪!

http://java.dzone.com/articles/why-idea-better-eclipse

首先创建工程 (1) 建立一个工程

FileNewAndroid Application Project

运行程序,选中app,右键点击菜单选择run asAndroid Application.注意此时需要将Android手机通过usb接口连接到电脑上,而且选择允许调试,即可在手机上安装运行的app,从而看到运行效果。

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better

(2) 分析代码架构(src/res/Manifest File)

src: java code, 主要负责实现App的组件(Activity,Broadcast,ContentProvider,Service etc)和数据存储(文件存储,db存储,shared Preference),完成用户界面内的相关交互。

res: layout,values,drawable etc, 主要负责UI布局,都是xml格式的文件。 Manifest File:主要是配置App的运行环境。Api的版本需求,App的访问权限,App所包含的组件,设备特征的相关权限等 (3) 建立并运行一个activity 先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better PS:首先注意到此处有一个黄色感叹号,说明此程序有警告,如果是一把红叉叉,就是程序包含错误,需要修复。此处有警告,是因为使用了低版本的类ActionBarActivity,所以类名上面有横线,在此处我们修改为Activity类,然后按快捷键ctrl+shift+O,自动import该类的命名空间。此时发现import android.app.Activity; 并且黄色的感叹号消失了。

Android开发重要组成部分

接下来我们进一步了解Android开发,Android开发的重要组成部分。 Android组件主要包括活动,广播,服务和内容提供器。这四大组件是组成App的基础功能模块,而intent和intent-filters是用来衔接各个功能模块组件,负责组件之间的交互和通信。

如果是组件是负责逻辑控制,那么App Res主要负责用户界面视图,在此会介绍构成视图的资源类型,以及各个资源的组成方式;之后还会介绍如何在代码中访问资源。由于运行app的设备分辨率不同,语言不同,操作系统版本不同等原因,需要考虑到资源如何对各种不同设备的硬软件兼容。

最后我们简单介绍下配置文件的作用。Manifest文件主要是用来声明App运行环境要求,支持什么版本的api, app包含哪些组件,需要哪些用户权限等。 Activity的定义

首先我们来看四大组件中最常见的Activity, 在SDK的官方文档是这样定义Activity的,其主要是提供一个可以让用户进行交互完成某些请求的用户界面。比如说用户在拨打电话,拍照,发送邮件,看地图的时候都需要一个用户界面,通过这个界面用户可以和app进行对话,发出请求,app响应请求。同样在刷先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better 微博的时候我们也可以处处看到Activity,微博feed流,点击消息进入消息箱。简而言之,Acivity是承载某个功能的UI和交互的一个容器,在app中看到的是一个用户交互界面。 Activity状态和生命周期

Activity一共有三种状态,当Activity处于前端的时候,也就是获取用户焦点的时候,其状态为Resumed,此时处于前端生命周期,而当其失去用户焦点,但是还是部分可见的时候,其状态为paused,此时不属于前端生命周期,而属于可见生命周期范围内,而当其失去用户焦点,又不可见的时候,此时就是stoped。从创建到stop整个过程为完整生命周期。

我们可以看一个例子。

主界面获取用户焦点

主界面不可见失去

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better

对于组件的用法主要分为三步: (1) 实现组件类

(2) 在Manifest或者代码中注册组件 (3) 在活动中启动或者触发组件

如何使用Activity(见demo)

(1) 创建UI—second.xml (2) 创建SecondActivity (3) 启动一个activity

前面我讲到要从主界面而跳转到第二个界面,也就是从第一个活动跳转到第二个活动,这个时候需要intent来衔接各个组件,完成组件之间的交互。

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better 首先我们来看下官方sdk上对intent的定义,intent是指向其他app发出动作请求,四大组件中的活动,服务和广播都是由intent来启动(此处没有讲清楚呀!!)也因此intent有广泛的应用,比如

– 从微博feed流跳转到消息箱 – 启动本地通知服务,闹钟备忘录服务 – 发微博晒照片跳转照相机程序

– 密码变更的时候,发送强制下线的广播…

Intent的类型

Intent包含两种类型,显式intent和隐式intent,显式intent是指通过组件类名来启动组件。然后隐式的intent是通过声明组件要执行的动作,android系统根据要执行的动作找到相应的组件启动之。

什么也不多说,我们看看代码。从代码中也可以看出显示intent和隐式intent的区别。一个是从主界面跳转到第二个页面,一个是先在Manifest声明跳转的动作,系统找到符合条件的活动进行启动。 隐式intent活动启动的原理

我们通过一个图来看看隐式intent启动活动的原理,如图所示:

[1] Activity A 通过一个Action的描述创建Intent,并将其传给startActivity.[2] 安卓系统搜索所有activity的intent filters,看是否这个intent中的action [3] 如果ActivityB 符合,则将启动Activity B

运行一个intent 先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better 如果要build一个intent,要么采用显式的intent通过组件类名进行启动。 要么描述组件要执行的动作或者种类信息,系统找到满足条件的组件进行相关的启动,可能执行某些动作的时候还需要携带一些数据。

Intent的用法

Intent可以用来启动一个活动,也可以用于启动一个服务,或者将其余服务进行相关的绑定,或者发送广播,或者在这个过程中传递或者返回数据。 具体会在后续进行相关的讲述。

Pendingintent的定义和应用

PendingIntent是指在intent对象外包了一层。Pendingintent最初的目的是用于授权外部程序可以使用内部的intent,就好像这个intent是内部调用,然后在内部进程内执行的。

其主要应用场景有:

一个是用于声明本地通知服务时所需的intent代码 另一个是用于声明定时任务触发的intent 最后是声明与控件交互的intent

Broadcast的定义和应用

广播接收器是指可以用来接收系统范围内的广播通知的组件。 广播的应用有:

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better 一些是来自系统的广播,比如说提示app电量过低,提示网络中断,不能再正常刷微信微博,开机时通知某些app自动启动。

有一些是应用程序广播或者本地广播,所谓本地广播是指程序内部的广播。比如当通知所有的活动强制下线等。

Broadcast的运行流程

Broadcast的运行流程包括发送广播,注册广播接收器和接收广播。发送广播主要是通过intent来进行广播的发送,注册广播接收器有两种方法,一种是在manifest中静态注册的方法,在manifest中声明接收器的类名以及相关动作。一种是在代码中动态注册的方法,在代码中创建intent-filter,并创建广播接收器对象,用这两个参数注册广播接收器;最后接收广播,就需要实现广播接收器的类,其中最重要是重载onReceive函数,里面是处理当接收到广播的时候如何处理。

ContentProvider的定义和应用

ContentProvider主要是提供访问外部数据的标准接口。

ContentProvider主要适应于当需要将一些复杂的数据或文件提供外部程序使用时,出于安全的考虑,提供contentprovider作为外部程序访问内部数据的接口。当只是在内部完成一些数据的读写,此时是不需要provider的。

ContentProvider的运行过程:

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better

1.App0 给其他app提供了一些数据。

2.App1和App2都想访问App0内部的数据,但App1因为没权限而无权访问,App2在manifest中声明了其访问权限。

3.为了App0内部数据安全,App0给外部程序提供了访问内部数据的标准接口即ContentProvider。

4.App2通过getContentResolver转化content URI中的provider authority和path,并与已知的providers匹配,从而找到所需要的provider,从而成功访问App0的内部数据。 ContentProvider的用法:

首先设计相关的数据结构——文件或者结构化数据。

之后就是设计内容的URI,实现provider的类,之后就是定义provider的属性,并且在manifest文件中注册相关的provider。

最后使用getContentResolver来找到正确的provider, 我们可以通过一个通讯录的例子来进行相关的了解。

Service的定义和应用

服务主要指在后台长期运行的程序。

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better 服务的应用有本地通知服务,定时任务服务和后台应用程序等。

Service的生命周期以及服务的相关用法

服务的生命周期分为完整生命周期和活跃生命周期,完整生命周期是指从服务创建到服务销毁。如果某个服务在某个活动启动,即使是活动被销毁了,这个服务也依然存在,比如push服务,即使没有停留在app前端,push服务也是在后台运行的。

而活跃生命周期是指从服务绑定到服务解绑的整个过程。

Service的相关用法:

实现服务类,在manifest中注册服务组件,并且在活动中启动或者绑定某项服务。

你会发现所有的组件的使用,基本都是实现具体组件类,然后再manifest中注册或者在代码中注册,之后在活动中通过intent启动相关的组件。

资源Resources Res用于构建我们看到的用户界面视图,我们将从以下三个方面来讲述:资源类型,设备兼容性,以及如何在代码中使用Resource,我们对照右图,可以看出资源有布局,有字符串,有调色板等,除了资源的种类,资源还会考虑设备的兼容性,比如说根据屏幕分辨率——分为hdpi的调色版,ldpi的调色板等,根据系统语言,字符串的分为英语,中文,日语的等,而由于不同设备上安装的是不同版本的android操作系统,自然资源要适配各种不同版本的api,比如先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better values-v11,values-v14等

为了更好的用户交互,有时候我们要获取资源,比如实现点击登录按钮跳转到微博主页,我们必须获取登录按钮,针对这个按钮先点击事件。那如何获取到登录按钮呢?也就是如何获取到按钮资源呢?在Android开发中会生成一份R文件,为每一个资源都分配了一个id,我们可以根据这个id进行访问。那如何获取到这个id呢,主要是根据我们在资源xml文件中定义的id,比如R.id.btn_login,类似于html中我们用到的id,也可以是类型+资源名来获取到这个id,比如R.string.hello_world。

布局的树形结构

一个用户界面整体是一个树形结构,有一个根的layout,之后layout可以相互嵌套。在android中资源分为两类:viewGroup和view,而viewGroup继承与view,viewGroup主要指布局,而view主要指控件,如按钮,文本,列表框等 Layout 讲到布局,必须提到布局的几种类型,最常用的是线性布局,其次是相对布局,之后是绝对布局和帧布局,线性布局分为垂直和水平,默认是水平的方式。相对布局主要是相对屏幕或者某个控件,某个内嵌布局的相对位置。 Manifest的相关作用

Manifest主要是用来声明App的运行环境,比如运行设备的硬软件特征,对屏幕分辨率,内存空间大小的要求,对Android操作系统版本的要求,App包含哪些组件,需要哪些用户权限等。这些都需要在Manifest中进行相关的声明

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better

小小测试---初步理解认识UI和交互

最后是做些小小测试,检验下大家今天的收获成果,比如在Android开发最重要的就是UI和交互,通过之前的几个小实验,现在大家思考下,这些稍微复杂一点的界面UI如何实现呢?如何构造布局,选择何种控件?

可以看到左边的这个,有一个标题栏,下面是聊天界面,最下面是输入框和发送按钮,可以做一个垂直线性的布局。上面的标题栏可以做一个横向线性的布局,中间的是一个listview的列表框,下面也可以做一个横向的线性布局(手绘一下基本的一个构造)

中间是一个通讯录的页面,这个通讯录的好友页面较之我们之前要复杂的多 也可以做一个垂直的线性布局,上面是一个标题栏,下面是一个listview,标题栏做一个横向的线性布局。而listview对其每一个list又定义一个横向的线性布局,一个ImageView图像控件和一个文本控件 右边的就相对要简单。标题栏加一个图像对象

看完UI之后,我们来分析下交互,左边的是输入文本框的内容,在点击按钮的时候获取文本框的内容添加到消息对象中,listview的消息列表中添加这条发送的消息。

中间就是我们刚刚获取了通讯录的用户名和电话号码的基础上之后,我们还需要获取联系人的头像。将这些元素在自定义列表布局中进行显示。

右边是添加一个感知器对象,感知手机晃动加速度,当加速度达到一定程度,随机弹出一个餐厅的名字。

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better 这三个界面可以做三个活动,在活动中显示UI,并且在活动中完成按钮以及列表框的触发事件。最后通过intent在各个界面之间进行跳转。

最后我们分析下微博的构造来理解四大组件。

微博有哪些主要的功能模块,这些功能模块之间如何交互。

从最下面的导航栏可以看出主要有微博主页,消息箱,微博发布器,发现和我的profile五大功能模块。他们之间可以通过点击按钮实现跳转到相应的活动页面,如果再进入更加深入一级别,就通过点击返回键,返回到上一界面。

首先所有的活动都会接收系统状态参数的一些广播,比如电量,比如网络状态,而且所有的活动都会接收push SDK的push通知服务等,所有活动也会接收当密码变更强制下线的广播。比如通讯录访问手机联系人的时候会用到通讯录数据。 我们主要分析下微博feed流和消息箱,这些一般都是分为几个模块,feed流和消息箱都是相应的listview,并且对list定制布局。

后记

本次分享旨在让大家对android开发有一个初步的认识,了解android开发的重要组成部分和基本开发流程,当接到android开发的需求的时候,有一个开发的方向感和清晰的开发思路。希望大家能动一动手,一起见证奇迹app诞生时刻。

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

讲清楚,do better

先做加法讲清楚,之后做减法,言简意赅,严格控制时间

android 开发心得

Android 嵌入式开发心得体会

Android项目开发总结

Android开发知识点总结

Android开发—四大组件

Android蓝牙开发小结

Android应用程序开发个人总结

android开发高薪就业培训

Android开发工程师学习路线

Android开发基本知识总结Android课件

Android开发分享讲稿(修改)
《Android开发分享讲稿(修改).doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题 android讲稿 讲稿
点击下载本文文档