3.安卓基础——环境搭建&基本布局&xml解析

android基础

1、基本概念

www.androiddevtools.cn(国内下载站)
SDK Software Development Kit 软件开发工具包
ADT Android Development Tools Eclipse开发android的插件
adb Android debug Bridge android调试桥
AVD Android Virtual Device 模拟器
DDMS Dalvik Debug Monitor Service 安卓调试服务
AAPT:Android Asset Packaging Tool (android资源打包工具)
2、SDK目录结构

add-ons 附加组件目录
build-tools 升级之后放的编译工具
docs 开发文档
extras android中放向下兼容的jar, intel中放模拟器加速软件
platforms android核心库
platform-tools 默认或未升级时存放编译工具 adb.exe连接模拟器或真机和电脑上开发工具
sources android framework 层源码
system-images android 系统镜像,用于模拟器
tools 工具,emulator.exe 模拟器程序
3、adb常用命令

adb devices
adb install -s emulator-5556 D:\base07\GameTest.apk
adb kill-server
adb start-server
adb shell
4、 Android工程目录

src java源码
libs 放jar包,自动添加编译路径
Android Dependencies 和libs相关
assets 资产目录,直接打包到apk文件
bin 编译生成的文件 .apk文件
gen 自动产生java文件,R.java R文件相当于资源的字典
res 资源目录,图片,布局文件,字符串。都会在R文件中生成一个id
使用R文件的资源,在java文件中R.layout.activitymain 在xml文件中,引用@string/helloworld,添加新的id @+id/ button2
AndroidManifest 清单文件,记录应用程序的包名,版本,最低的sdk版本,图标,应用程序名,记录的应用程序需要权限。
5、 MVC架构模式

MVC Model模型-View视图-Controller控制器
Model 模型,数据操作,存储和更新
View 视图,用户界面,向用户展示数据
Controller 控制器,负责处理用户输入和交互。
6、android应用程序中的MVC

View : layout目录下的xml布局,设计应用ui界面
Contronller : Activity作为控制器,处理用户交互操作
Model : 数据模型,组织和获得数据,一般javaBean实现
7、android中颜色有四个分量 #AARRGGBB 00~ff Alpha 00完全透明,ff完全不透明

8、几个常用的方法:

hint输入提示:(对比HTML中的placeholder)
getText()可以得到EditText对象里面的内容
intent.setAction(Intent.ACTION_CALL);//设置意图的动作
Uri uri = Uri.parse("tel:" + phone);//将字符串解析为uri对象
//Uri 统一资源标识符 tel:114 mailto://sms
//url 统一资源定位符 http://www.baidu.com
intent.setData(uri);//设置意图的数据
startActivity(intent);//启动界面
Toast.makeText(context,text,duration)
9、安卓布局

线性布局LinearLayout (重要)
相对布局RelativeLayout (重要)
帧布局FrameLayout 帧布局是一层层叠加的 (重要)
绝对布局AbsoluteLayout
表格布局TableLayout

注意:

android:layout_gravity="center" 控件自己的对齐 android:gravity="center" 控件内容的对齐
ImageView中src的图片不会把整个空间占满,改成background后可以占满整个空间
利用weight权重配合width或height实现比例分配空间。如果方向是水平,width设置0dp + weight ; 如果方向是垂直方向height设置0dp + weight
android:orientation设置水平或垂直属性,默认是水平的
10、单位:

px像素不建议用
dp/dip Device Independent Pixels设备无关像素#00000000 00全透明 ff不透明
sp用于字体设置,也是与设备无关
11、简单短信实现

获得短信管理器

    SmsManager smsManager = SmsManager.getDefault();//SmsManager构造器是私有化的
发送短信:

smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)
//各个参数:短信路标地址,源地址(我国国情为null),发送的文本内容,发送反馈,对方接收反馈
发送彩信:

smsManager.sendDataMessage(destinationAddress, scAddress, destinationPort, data, sentIntent, deliveryIntent)
如果一条短信超出大小,就会发送不出去,google也为我们设计好了
设置权限

几个方法:

android:inputType="textMultiLine"设置多行
android:lines="5"行数
12、测试相关

是否知道源码划分

黑盒测试:不知道程序源码,从用户角度测试程序功能。
白盒测试:知道程序源码,测试程序代码是否正确。
测试粒度

单元测试,对方法测试,junit test
集成测试,几个模块进行测试,integration test
系统测试,整个系统测试 system test
测试力度

压力测试,pressure test
冒烟测试,smoke test
13、Android 测试

monkey测试:

adb shell
monkey -p com.android.email 200 
Junit测试:

1.编写业务代码
2.编写测试代码,新建测试类继承AndroidTestCase,测试方法,需要抛出异常
3.在AndroidManifest.xml文件中配置instrumentaion和uses-library
4.选中测试方法,run --> Android junit test
5.查看测试结果
14、Android点击事件的四中写法(注意内部类Toast的时候都要用MainActivity.this)

内部类方式——注册的事件源比较少
匿名内部类方法——事件源又多一点
当前activity中this——事件源更多,让这个activity实现事件接口,一般测试时候用,正式上线的时候不用。
在ui的xml文件中,配置onClick属性(该方法不能设置为private) 因为底层的实现-反射没有getDeclaredMethod()
15、快捷键

ctrl + h 实现在整个工程的文件中字符串
ctrl + k / ctrl + shift + k 在当前文件中查找字符串
16、XML的介绍(解析要求掌握)

指可扩展标记语言(EXtensible Markup Language)
存储和传输数据(RSS订阅的新闻、服务器返回的数据接口、软件的配置)
注意:
xml文档声明 <?xml version="1.0" encoding="UTF-8"?>
元素都须有关闭标签
标签对大小写敏感
文档必须有根元素(只有一个)
的属性值须加引号
特殊字符必须转义
XML 中的空格、回车换行会解析时被保留
16、XML中的sharedPreferences轻量级的存储类,特别适合保存软件配置参数。 存放位置:/data/data//shared_prefs

读

方法的第一个参数用于指定文件的名称,后缀由Android自动添加,第二个参数指定文件的操作模式。

    操作模式分为四种
    Context.MODE_PRIVATE    =  0
    Context.MODE_APPEND    =  32768 追加
    Context.MODE_WORLD_READABLE =  1
    Context.MODE_WORLD_WRITEABLE =  2

SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
获得编辑器

Editor editor = sp.edit();
写入k-v数据

editor.putBoolean("gps_config", isChecked);
提交修改

editor.commit();
写

SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
设置默认值false
boolean isChecked = sp.getBoolean("gps_config", false); 
17、XML中XmlSerializer序列化器的用法

18、虚拟机

dalvik vm基于寄存器的架构.java-->.class-->.dex-->.odex
jvm 基于栈的架构.java-->.class-->.jar
dalvik vm在编译时已经优化代码,将多个文件整合成一个,减少了文件个数i/o的操作提高查询速度
19、res/drawable 专门存放png、jpg等图标文件。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源

20、res/values

strings.xml 定义字符串和数值,在Activity中使用getResources().getString(resourceId) 或getResources().getText(resourceId)取得资源。它的作用和struts中的国际化资源文件一样。
arrays.xml 定义数组。
colors.xml 定义颜色和颜色字串数值,你可以在Activity中使用getResources().getDrawable(resourceId) 以及getResources().getColor(resourceId)取得这些资源
dimens.xml 定义尺寸数据,在Activity中使用getResources().getDimension(resourceId) 取得这些资源 (dimens尺寸)
styles.xml 定义样式。
21、res/anim/ 存放定义动画的XML文件

22、res/xml/ 在Activity中使用getResources().getXML()读取该目录下的XML资源文件。

23、res/raw/ 该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,它们被直接加入到程序安装包里。

24、安卓程序打包过程

用dx.bat工具将多个.class文件打包成一个classes.dex文件
用aapt.exe文件将.dex文件、清单文件、资源文件、assets等打包成.apk文件
.apk签名sign
安装
25、dial拨号盘、1 英寸= 2.539999918 厘米(公分)、acaling、crop剪裁、latency延迟、webcam网络摄像头、verbose啰嗦、terminate终止

26、Android为数据存储提供了如下几种方式:

    1、文件
    2、SharedPreferences(参数)
    3、SQite数据库
    4、内容提供者(Content provider)
    5、网络
27、xml解析器的解析过程:

获取sharedPrefrences解析器对象 getSharedPrefrences()
设置解析的文件及编码
获取解析器的事件
遍历解析

判断是否是文档的结束,如果不是继续解析
判断是否是文档的开始标签如果是继续
判断是否是想要的解析属性
如果是获取其属性的值
这样依次获取各个属性的值

发布了45 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u010436867/article/details/54427691