[Android知识点]基础复习

这篇博客主要复习了Android的基础知识,包括应用程序目录结构、资源管理、布局管理器、UI组件、距离单位、事件处理、Activity与Fragment的交互、数据存储方式、ContentProvider、Service和BroadcastReceiver。重点讲解了Eclipse应用程序目录的含义,各类型的布局如LinearLayout、RelativeLayout、FrameLayout,以及各种UI组件的使用。此外,还提到了数据存储的四种主要形式,如SharedPreferences、SQLite数据库,以及Service和BroadcastReceiver的工作原理。博客建议读者理解和实践相关代码,特别是布局管理和数据存储部分。
摘要由CSDN通过智能技术生成

老师划的重点:
题型包括:
1、选择题 20分
2、填空题 10分
3、简答题 30分
4、程序分析 20分
5、程序设计:20分
第一章:复习eclipse应用程序目录的含义
这里写图片描述
上图中蓝色框住区域是一个完整项目的目录结构。
目录结构说明:
src/java原代码存放目录
gen/ 自动生成目录
gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

bin 用于存放ADT编译时产生的临时文件, 最终会被打包成一个xxx.apk

res/资源(Resource)目录
在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。
res/drawable
专门存放png、jpg等图标文件。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源
res/layout
专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于显示用户操作界面
res/values
专门存放应用使用到的各种类型数据。不同类型的数据存放在不同的文件中。
strings.xml 定义字符串和数值
arrays.xml 定义数组
colors.xml定义颜色和颜色字串数值
dimens.xml 定义尺寸数据
styles.xml 定义样式。
res/anim/
存放定义动画的XML文件
res/xml/
在Activity中使用getResources().getXML()读取该目录下的XML资源文件
res/raw/
该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,它们被直接加入到程序安装包里

libs/支持库目录
程序开发时需要的一些三方的jar包可以放在这个目录,系统会自动把里面的jar包,添加到环境变量。
assets资源目录
Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gp
AndroidManifest.xml项目清单文件
这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。
project.properties项目环境信息,一般是不需要修改此文件

第二章:
ui组件:布局管理器有哪些

Android常用布局:
Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是LinearLayout(线性布局)、RelationLayout(相对布局)、FrameLayout(帧布局)、AbsoluteLayout(绝对布局)、TabLayout(表格布局)。其中前3种布局用的频率一般是最高的。
绝对布局:
在此布局中的子元素的android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。
表格布局
 适用于N行N列的布局格式。一个TableLayout由许多TableRow组成,一个TableRow就代表TableLayout中的一行。
  TableRow是LinearLayout的子类,TableLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow,以及其他组件来控制表格的行数和列数, TableRow也是容器,因此可以向TableRow里面添加其他组件,没添加一个组件该表格就增加一列。如果想TableLayout里面添加组件,那么该组件就直接占用一行。在表格布局中,列的宽度由该列中最宽的单元格决定,整个表格布局的宽度取决于父容器的宽度(默认是占满父容器本身)。
  TableLayout继承了LinearLayout,因此他完全可以支持LinearLayout所支持的全部XML属性,除此之外TableLayout还支持以下属性:
  这里写图片描述

线性布局、相对布局、帧布局是最重要的,建议将这三个布局书上的例子全部敲一遍并理解,在此就不放程序了,这个是重点!!!

android中常用的距离单位

1.px (pixels)(像素):是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px会比较多。通常不推荐使用这个。
2.dip或dp(与密度无关的像素):一个基于density(密度)的抽象单位,这个和设备硬件有关,通常在开发中设置一些view的宽高推荐用这个,一般情况下,在不同分辨率,都不会有缩放的感觉。在运行时, Android根据使用中的屏幕的实际密度, 透明地处理任何所需dip单位的缩放。
3.sp(与刻度无关的像素):同dip/dp相似,会根据用户的字体大小偏好来缩放,主要用于设置字体的大小。
4.dip和px 的区别:
首先明确一点:
HVGA屏density=160;QVGA屏density=120;
WVGA屏density=240;WQVGA屏density=120
density值表示每英寸有多少个显示点,与分辨率是两个概念。
dip到px的转换公式: px = dip * (density / 160)
Android官方定义dip等价于160dpi屏幕下的一个物理像素点, 即1dip=1px。举例来说, 在 240 dpi 的屏幕上, 1dip 等于 1.5px。

不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例:
 1.当density=120时屏幕实际分辨率为240px*400px (两个点对应一个分辨率)状态栏和标题栏高为19px或者25dip。
横屏时屏幕宽度为400px或者800dip,工作区域高度211px或者455dip;
竖屏时屏幕宽度为240px或者480dip,工作区域高度381px或者775dip。
 2.当density=160时屏幕实际分辨率为320px*533px (3个点对应两个分辨率)状态栏和标题栏高为25px或者25dip。
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者455dip;
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip。
 3.当density=240时屏幕实际分辨率为480px*800px (一个点对于一个分辨率)状态栏和标题栏高为38px或者25dip。
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者455dip;
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip。

Tips: 在Android的应用包apk中,系统会根据各个设备的具体情况引用相应的资源文件(注:不加任何标签的资源是各种分辨率情况下共用的):
当屏幕density=240时,使用hdpi标签的资源;
当屏幕density=160时,使用mdpi标签的资源;
当屏幕density=120时,使用ldpi标签的资源。

文本框与编辑:框需要会从文本框与编辑获取数字,并进行简单的运算。有编程题。
文本框就是TextView,编辑是EditText,都非常简单,熟悉基本的属性就行,获取数字也是调用控件的函数。

列表视图和ListView和ListActivity
非常重要,将书上的例题敲一遍并理解,或者参考我的这篇博客,详细介绍了ListView,这个可能会出编程题,一定要理解,不理解就问问理解的同学。
http://blog.csdn.net/code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值