完全新手的安卓视频教程学习笔记(一)

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

             public void onClick(View v) {点击事件的具体响应方法}

            }


   (2)创建一个接口的匿名内部类定义点击事件。

按钮名.setOnClickListener(new OnClickListener(){

@Override

             public void onClick(View v) {点击事件的具体响应方法}

});


    (3)让Activity实现点击事件的接口。

         public class Activity名extends Activity implements OnClickListener{}

         按钮名.setOnClickListener(this);

         @Override

              public void onClick(View v) {

                switch (v.getId()){

                  case R.id.按钮名:

                    点击事件的具体响应方法;

                    break;

           }

         这种写法最常见,因为一个界面可能有许多点击按钮,该写法可以把所有按钮点击事件都写在一个public void onClick(View v)方法内用switch判断按钮id来调用正确的回应方法,不用每个按钮都写一个public void onClick(View v)。


     (4)在布局文件layout中绑定一个点击的方法。

          Layout中:<Button

                           android:onClick="dailButtonClicked"/>

          Activity中:

          public void 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)

             以此类推。。。。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值