android笔记

#Android整理笔记
##第一章Android的概述
*它是google于2007年11月发布的基于linux平台的开源手机操作系统,
该平台由操作系统中间件用户界面应用软件组成
*Android的体系结构:
*Dalvik虚拟机作为Android设备的JAVA代码解释器

*Android的组件:
	activity:负责界面显示,是组件的容器
	intent:不同组件之间相互导航的纽带
	service:负责后台处理数据
	content provider:不同组件与应用之间数据共享
	View:图形用户组件的基类
	Broadcast Receiver:广播接收组件
*Android的优势:
	一、开放性
	二、丰富的硬件选择
	三、不受任何限制的开发商 
	四、无缝结合的Google应用

##第二章
*模拟器使用 Android Virtual Device (AVD) 配置确定被模拟设备的外观、功能和系统映像。
*Android的目录结构
Java/(Java源码存放目录)
Res/(资源文件存放目录)
AndroidManifest.xml(整个程序的主配置文件)
MainActivity.java(整个工程预设的主视图,是程序运行之后显示的第一个界面)
##第三章
*打包的流程
(1)编译器讲源代码转换成DEX文件,将所有其他内容转换成已编译资源
(2)APK打包器将DEX文件和已编译资源合并成单个APK,不过,必须先签署 APK,
才能将应用安装并部署到 Android 设备上。
(3)APK 打包器使用调试debug或发布release密钥库签署您的 APK
(4)在生成最终 APK 之前,打包器会使用 zipalign 工具对应用进行优化,减少其在设备上运行时的内存占用。

*为什么要签名(意义)
	为了保证每个应用程序开发商合法ID,防止部分开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,
	我们需要对我们发布的apk文件进行唯一签名,保证我们每次发布版本的一致性(如自动更新不会因为版本不一致
	而无法安装)。

*logcat日志
	LogCat的右上方的五个字母表示五种不同类型的日志信息 ,他们的级别依次增高  
	[V]:详细(Verbose)信息           [D]:调试(Debug)信息
	[I]:通告(Info)信息              [W]:警告(Warn)信息 
	[E] :错误(Error)信息

##第四章事件响应
*Android在事件处理过程中主要涉及到3个概念: 
1、事件(Event):表示在图形界面操作的描述,通常是封装成各种类,比如:单击事件、触摸事件、键盘事件等。
2、事件源(Event Source):事件源是指事件发生的场所,通常是指各个组件,例如:Button、EditText等控件。
3、事件监听器(Event Listener):事件监听器是指接收事件对象并对其进行处理的对象,事件处理一般是一个
实现某些特定接口类创建的对象。
*Android提供了以下几种基于监听接口的事件处理模型:(要知道)
1)OnClickListener接口:单击事件。
2)OnLongClickListener接口:长按事件。
3)OnFocusChangeListener接口:焦点改变事件。
4)OnKeyListener接口:键盘事件。
5)OnTouchListener接口:触摸事件。
6)OnCreateContextMenuListener接口:上下文菜单事件。
##第五章
*Toast提示框
Toast.makeText(getApplicationContext(), “默认Toast样式”,
Toast.LENGTH_SHORT).show();
*LayoutInflater功能
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.layout_toast_cust,null
把定义的xml布局文件转换成系统的View
##第六章
*资源存放的目录(res/anim(放动画)、res\color、res\layout、res\menu、res/drawable)
*资源命名注意:
1)资源命名要符合Java变量命名规范
(2)同类资源的文件名或变量名不能重复,因为同类资源的ID都被放在R的同一个内置类中,
当然不允许有重名的类,同一个类中也不允许有重名的变量。
(3)由于在生成ID时并不考虑资源文件的扩展名,因此,在同一个资源类型的目录中不能存在文件名相同,
扩展名不同的资源文件
*数组资源
数组资源文件位于res/values/arrays.xml文件中,根元素是标记,
在该元素中,包括以下3个子元素。
子元素:用于定义普通类型的数组。
子元素,用于定义整数数组。
子元素,用于定义字符串数组。
##第七章
*Android用户界面框架采用视图树(View Tree)模型
Android用户界面框架中的界面元素以一种树型结构组织在一起,称为视图树
Android系统会依据视图树的结构从上至下绘制每一个界面元素。
每个元素负责对自身的绘制,如果元素包含子元素,该元素会通知其下所有子元素进行绘制
*ListView
ListView是一种用于垂直显示的列表控件,如果显示内容过多,则会出现垂直滚动条
ListView能够通过适配器将数据和自身绑定,在有限的屏幕上提供大量内容供用户选择,所以是经常使用的用户界面控件
ListView支持点击事件处理,用户可以用少量的代码实现复杂的选择功能
##第八章
*线性布局
线性布局(LinearLayout)是一种重要的界面布局中,也是经常使用到的一种界面布局
在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列








*框架布局
框架布局(FrameLayout)是最简单的界面布局,是用来存放一个元素的空白空间,
且子元素的位置是不能够指定的,只能够放置在空白空间的左上角
如果有多个子元素,后放置的子元素将遮挡先放置的子元素
使用Android SDK中提供的层级观察器(Component tree)进一步分析界面布局
层级观察器能够对用户界面进行分析和调试,并以图形化的方式展示树形结构的界面布局

*表格布局
	表格布局(TableLayout)也是一种常用的界面布局,它将屏幕划分网格,通过指定行和列可以
	将界面元素添加的网格中
	网格的边界对用户是不可见的
	表格布局还支持嵌套,可以将另一个表格布局放置在前一个表格布局的网格中,也可以在表格布局
	中添加其他界面布局,例如线性布局、相对布局等等
*相对布局
	相对布局(RelativeLayout)是一种非常灵活的布局方式,能够通过指定界面元素与其他元素的
	相对位置关系,确定界面中所有元素的布局位置
	特点:能够最大程度保证在各种屏幕类型的手机上正确显示界面布局
*绝对布局
	绝对布局(AbsoluteLayout)能通过指定界面元素的坐标位置,来确定用户界面的整体布局
	绝对布局是一种不推荐使用的界面布局,因为通过X轴和Y轴确定界面元素位置后,
	Android系统不能够根据不同屏幕对界面元素的位置进行调整,降低了界面布局对不同类型
	和尺寸屏幕的适应能力

##第九章
*Activity生命周期
Activity生命周期指Activity从启动到销毁的过程
Activity表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态
活动状态,Activity在用户界面中处于最上层,能够与用户进行交互
暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互
停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡
非活动状态不在以上三种状态中的Activity则处于非活动状态

*onPause()和onSaveInstanceState()的区别
	这两个函数都可以用来保存界面的用户输入数据,他们的区别在于
	onPause()一般用于保存持久性数据,并将数据保存在存储设备上的文件系统或数据库系统中的
	onSaveInstanceState()主要用来保存动态的状态信息,信息一般保存在Bundle中
	Bundle是能够保存多种格式数据的对象
	在onSaveInstanceState()保存在Bundle中的数据,系统在调用onRestoreInstanceState()
	和onCreate()时,会同样利用Bundle将数据传递给函数

#第十章
*启动Activity
(1)显式启动
使用Intent显式启动Activity
创建一个Intent
指定当前的应用程序上下文以及要启动的Activity
把创建好的这个Intent作为参数传递给startActivity()方法
Intent intent = new Intent(IntentDemo.this, ActivityToStart.class);
startActivity(intent);
(2)隐式启动
优点:不需要指明需要启动哪一个Activity,而由Android系统来决定,有利于使用第三方组件
隐式启动Activity时,Android系统在应用程序运行时解析Intent,并根据一定的规则对Intent
和Activity进行匹配,使Intent上的动作、数据与Activity完全吻合
匹配的Activity可以是应用程序本身的,也可以是Android系统内置的,还可以是第三方应用程序提供的。
因此,这种方式更加强调了Android应用程序中组件的可复用性
*广播消息
调用sendBroadcast()函数,就可把Intent携带的消息广播出去
BroadcastReceiver用于监听广播消息
onReceive()方法接收广播
##第十一章 数据库
*SQLite数据库特点
更加适用于嵌入式系统,嵌入到使用它的应用程序中
占用内存非常少,运行高效可靠,可移植性好
提供了零配置(zero-configuration)运行模式
*自己的数据库操作类需要继承SQLiteOpenHelper
*数据保存的方式:
数据库、文件、简单存储(sharedPreferences)、content、provider、网络
*文件存储保存的路径
/data/data//files

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值