完全新手的安卓视频教程学习笔记(一)
来源:互联网 发布:仿淘宝 下拉刷新 编辑:程序博客网 时间:2024/06/05 15:31
1. 重启abd
在DDMS中Devices下工具栏下拉箭头中有重启adb按钮。
如果不行,在任务管理器中手动结束adb进程。
如果还不行,查看是否有程序占用5037端口。
2. 如何查询计算机端口占用情况:
运行cmd,输入netstat -ano。
外部地址即为端口号,可查到PID,再用 PID在任务管理器中找到对应程序。
如任务管理器中不显示PID,在查看下选择列中勾选。
3. 创建新程序时,Compile With要与可支持的最高版本一致。
4. 如果只是开发一个jar包或库函数项目,勾选Mark this project as a library。
5. assets目录中可存放一些文件,如数据库和图片等,这些文件会被原封不动的打包到APK。
6. bin目录就是编译后的文件。
7. libs目录存放suppor的jar包,保障在高版本编写的程序在低版本中也能运行。
8. layout目录中可定义界面。
9. xmlns表示命名空间。
10. values目录中strings.xml可定义字符串。再在界面中用android:text="@string/字符串名"语句调用。
android:layout_centerHorizontal水平居中。
android:layout_centerVertical竖直居中。
11. Project中clean可以刷新工程,如果编译报错,而人工确认工程无错,可刷新后再编译。
12. 如果之前强制关闭程序,造成第二次打不开工程,把工作空间中的工程目录下.setting目录删除后再试。
13. 如果遇到工程无法部署,可右键工程名下的Android tools中的Fix project properties试下。
14. AndroidManifest.xml是该安卓工程的清单文件。
15. 所有安卓程序都有互不相同的包名。程序已包名为表示。同一手机中不可能有包名相同的两个程序。
16. intent-filter中为图标显示。没有intent-filter就没有程序的图标。
17. 大型程序部署用Eclipse很慢,最好用一些部署工具,如ant。
18. DDMS中FILE EXPLORER的DATA目录下的system目录中的package.list和package.xml相当于电脑中的注册表。
19. adb中install后跟APK名,但uninstall后面要跟程序包名。
20. adb后跟 -s 加设备的device编号再加指令,可选择在哪个设备上运行adb指令。
21. adb pull 手机文件名 你取的电脑文件名,从手机取文件;
adb push 电脑文件名 /手机路径/你取的手机文件名,把电脑的文件放入手机的指定位置。
22. 如果adb时常出问题,检查电脑中是否开着手机助手类软件。
23. adb shell 进入手机终端系统,可为手机执行Lunix的命令行指令。
24. Androi安装路径不能有中文。
25. 有时电脑非正常关机后,下次在使用原来的模拟器时无法保存数据。这种情况,需把x:\用户\Admnistrator\.android\avd\xxx.avd目录下的.lock文件夹手动删除后,再试。
26. 如果模拟器上出现无信号,一般是你的电脑没有连接互联网。或者直接连接互联网,或者给无法联网的电脑手动备置IP地址。
27. ctrl+F11 模拟器横竖屏切换。
28. <requestFocus /> 点击该文本框自动弹出手机中的输入号码软键盘。
29. 当要输入文本以命名控件时,最好在values目录下的strings.xml中添加一个string字符串,以方便日后国际化工作。android程序也会有警告,发现警告后,按ctrl+1后在下拉框选Extract string,即可抽取该文本做成string字符串。
30. ctrl+鼠标左键 可查到类的源代码。如果没有,还能添加源代码:点击Attach Source 再点ExternalFolder选sdk目录下sources目录中的源代码,即可添加。
Button类在Android-15。
TextUtils在Android-15。
31. Intent类 一种动作类。
Android的工程师预置了一系列动作可以用intent.setAction(intent.预置的动作名)来调用。
用intent.setData(Uri.parse(数据名))来指定动作的数据。
32. Uri 统一资源标示符,Url的父类。
33. 部署时出现程序停止运行,可在LogCat中查找原因。找Caused by这一列。
34. 在AndroidManifest.xml中的Permissions中可添加控制权限
35. Edit Text类中.getText()方法后跟. toString()转换成String类型,后跟.trim()忽略Text中的回车或空格等。
36. Toast.makeText(context, text, duration).show()
context可指定Activity。
text为提示框的文本。
duration为显示时长可输入Toast. LENGTH_LONG或Toast.LENGTH_SHORT。LONG为2秒钟,SHORT为1秒钟。
.show()为显示提示框。
37. 点击事件写法:
(1)创建一个内部类定义点击事件。
按钮名.setOnClickListener(new内部类());
private class 内部类 implements OnClickListener{
@Override
publicvoid onClick(View v) {点击事件的具体响应方法}
}
(2)创建一个接口的匿名内部类定义点击事件。
按钮名.setOnClickListener(new OnClickListener(){
@Override
publicvoid onClick(View v) {点击事件的具体响应方法}
});
(3)让Activity实现点击事件的接口。
public class Activity名extends Activity implements OnClickListener{}
按钮名.setOnClickListener(this);
@Override
publicvoid onClick(View v) {
switch (v.getId()){
case R.id.按钮名:
点击事件的具体响应方法;
break;
}
这种写法最常见,因为一个界面可能有许多点击按钮,该写法可以把所有按钮点击事件都写在一个publicvoid onClick(View v)方法内用switch判断按钮id来调用正确的回应方法,不用每个按钮都写一个publicvoid onClick(View v)。
(4)在布局文件layout中绑定一个点击的方法。
Layout中:<Button
android:onClick="dailButtonClicked"/>
Activity中:
publicvoid dailButtonClicked(View v){
点击事件的具体响应方法;
}
38. 将经常调用的程序段抽出出来编成独立的方法,以便之后调用。右键程序段,Refactor中选Extract Method。
39.Layout中的TextView有
android:textAppearance="?android:attr/textAppearanceLarge"是指文本字体是系统指定大小。如果要改,删除该行,写android:textSize="大小像素"即可。
40. android:textColor 指定文本颜色,形式”#000000”,rgb格式。注意如果用电脑中的取色器中显示的编码是bgr格式。
另形式”#000000”如果#后再加2位,则指定为透明程度,ff为不透明,00为全透明。
41. 如果要替换多处代码,选取该段代码,Ctrl+F替换。
42. android:singleLine="ture" 文本框只有1行。
android: Lines="数字"文本框有数行。
43. 如果程序部署失败,在Console显示timeout。
(1)可能是电脑比较慢,adb未能在指定时间内把程序上传到模拟器或手机上。可以改下指定时间,在Window中Preferences目录下Android中DDMS中ADB connection time out中修改。默认5000毫秒。
(2)最常见的是模拟器挂掉了,重启模拟器。
44. 一般Java中命名采用my+类名+实例名。实例名首字母大写。
45. 如果一个类的实例不能new,说明该类没有构造方法,要用类名.getDefault()。
46. 在指定UI控件大小时,单位用“dp” 不要用“px”。“dp”可保证不同屏幕大小的手机,UI的显示效果一致。
47. 在表格UI布局中,如果要使一行的不同列大小比例不一,可写成 android:layout_weight="1"
android:layout_width="0dp"
其中layout_weight="1"中的1表示比例占1份,如果是2就表示2倍大于1,依此类推。
48. android:gravity="center"表示控件的文本居中。
49. Framelayout布局中的控件可隐藏。
50. 安卓系统中有专门用于冒烟测试的工具:安卓猴子。用adb shell进入终端系统,在输入monkey进入该工具。
冒烟测试:指反复大次数的运行程序,看程序是否有问题。
51. SuperClass 父类。
52. 写测试方法时,所有的方法都要加throws Exception,来把异常抛给测试框架。
53. 断言方法assertEquals(正确的值,运算的值),判断测试结果是否正确。
54. 在Outline中右键测试的方法选run As下Android Junit Test运行测试方法。
55. 要运行测试方法,先要在AndroidManifest.xml中加入:
(1)指令集
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:label=" "
android:targetPackage=" "
/>
Name 指令集名称,固定不变。
Label 指令集别名,自己起或不起都行。
TargetPackage 测试的目标程序。
(2)函数库
<uses-libraryandroid:name="android.test.runner"/>要放在<application>节点下。
(新建一个Project下Android Test Project工程,其中的AndroidManifest.xml中自动就有上述配置,直接复制黏贴。)
56. xml文件中注释快捷键为ctrl+shift+/。
57. Log输出日志信息是分等级的:
Verbose:提醒 黑色 Log.v(tag,输出的信息)
Debug: 调试 蓝色 Log.d(tag,输出的信息)
Info: 信息 绿色 Log.i(tag,输出的信息)
Warn: 警告 橙色 Log.w(tag,输出的信息)
Error: 错误 红色 Log.e(tag,输出的信息)
tag建议写为类名。
58. Logcat中右边SavedFilters为日志过滤器,点绿色的加号,可创建带条件的过滤器。
59. 也可用System.out.println(输出的信息)来输出日志信息,在Logcat中为Info级绿色信息,tag为System.out。
还可用System.err.println(输出的信息)来输出日志信息,在Logcat中为Warn级橙色信息,tag为System.err。
此方法不建议使用,会造成无法获知是哪个类中的输出信息。
60. 控件中内容的赋值语句必须写在setContentView()方法之后,即控件布局被创建后其中的控件方能被赋值。
61. TextUtils.isEmpty(字符串)判断字符串是否为空。
62. 字符串1.equals(字符串2)判断2个字符串是否相等。
63. 在手机中保存的文件在data/data/包名目录下。
64. Bool方法可以自己写是否有异常,异常就显示false。Void方法只能报异常抛出。
65. 选中语句块右键选Surround with目录下有各种控制方法模块。
66.没有调用任何类的成员变量的方法,可以写成static静态方法。可提高虚拟机效率。
67. Context类提供一些方便的API,可得到应用程序的环境。(环境包括:包名、安装路径、文件路径、资源路径、资产路径等。)
Context.getFilesDir()返回目录data/data/包名/files/ 永久文件夹。
Context.getCacheDir()返回目录data/data/包名/Cache/ 缓存文件夹。不能放置体积大于内存的文件。
Context.openFileOutput(string,int mode) 打开指定文件写入。
mode: MODE_PRIVATE 私有文件,其它程序无法读写。
MODE_WORLD_READABLE 文件可被其它程序读取。
MODE_WORLD_WRITEABLE
文件可被其它程序写入。
MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE 公开文件,可被其它程序读写。
Context.openFileIntput(string) 打开指定文件读取。
68.在DDMS中的FileExplorer的Permissions可查看文件的权限状态:
第0位 -表示文件,d表示目录
第1-9位 r表示可读,w表示可写,x表示可执行, -表示不可
第1-3位 表示当前程序
第4-6位 表示当前程序所在的用户组:一般情况下安卓系统的每一个程序对应一个独立的组(可用adb shell进入cd /data/data下用ls -l命令查看,第一列为用户名、第二列为用户组名、第三列为程序名)
第7-9位 表示其它程序
69. 用adb shell进入cd /data/data/程序名/files用chmod改变文件访问权限:
例: - --- --- --- 为000(二进制0 000 000 000)
- rw- --- --- 为600(二进制0 110 000 000)
- rw- rwx --- 为670(二进制0 110 111 000)
以此类推。。。。。。
- 完全新手的安卓视频教程学习笔记(一)
- 安卓学习笔记一
- 安卓学习笔记一
- 增强的安卓组件 -- AndroidAnnotations学习笔记一
- 安卓学习笔记(一)Log的用法
- Pomelo 新手学习笔记(一)
- 安卓学习笔记一:预备篇
- 安卓学习笔记(一)
- 安卓学习笔记整理(一)
- 安卓开发学习笔记(一)
- 安卓学习笔记(一)
- 我的安卓开发学习笔记一:安卓系统架构
- 安卓新手开发学习小技巧
- 安卓笔记(一)
- Android开发新手学习笔记(一)
- 新手学习DaVinci笔记一:查找资料篇
- 安卓新手学习笔记 ——XML解析与JSON解析
- 安卓智慧上海学习笔记系列——GuideActivity新手引导页代码
- hdu 1281 棋盘游戏(二分匹配)
- android 中文件存储以及几种操作模式
- 怎样获得虚函数指针
- poj 2524 Ubiquitous Religions --- 并查集
- List Set Map有什么异同?
- 完全新手的安卓视频教程学习笔记(一)
- 虚拟机ping不通win7
- 简单工厂模式
- 题目1197:奇偶校验
- 【面试】联合体内存表示
- 9.选择排序——堆排序
- 线性代数的疑惑
- 数据结构学习笔记8 树 课后习题
- java通过反射调类中的某个方法和获得类中的元素。