疯狂Android讲义 - 学习笔记(一)

时间:2022-10-31 21:33:53

常用开发工具的用法

android : 启动Android SDK管理器

android --help  查看具体用法

android create avd -n t10 -t 10 -b armeabi-v7a     创建虚拟机 (t10 是 Android 4.0.3)

emulator -avd t10   启动虚拟机

ddms  启动调试环境

adb   : Android Debug Bridge, 可以完成手机和电脑文件的相互复制,安装apk应用,可以直接切换到Android系统中执行Linux命令。

adb push d:/adb.txt /sdcard/Stock/              复制文件到手机

adb pull /sdcard/Stock/userdata_0526.rar .    复制文件到电脑

adb shell     启动shell窗口,可以执行一些常用的linux命令,如:ls、mkdir、rm

adb help     使用帮助

adb install [-r] [-s] <file>

adb install text.apk

adb uninstall [-k] <package>

dx --help    编译Android应用    (P34)

dx -dex --dump-to=g:\a.dex --core-library d:\helloworld\bin       (将binmul下所有二进制文件转换为a.dex)

aapt --help  打包资源  (P34)

mksdcard --help   管理虚拟SD卡

mksdcard 64M F:\Android\sdcard.img

emulator -avd t10 -sdcard F:\Android\sdcard.img    启动模拟器,使用指定虚拟SD卡

adb kill-server

adb start-server

adb uninstall cn.emoney.hg

 

adb server 无法启动的问题解决:

1 C:\Users\用户名>adb start-server

2 C:\Users\用户名>adb nodaemon server
   cannot bind 'tcp:5037'//tcp为”5037“说明端口被占用
4 C:\Users\用户名>netstat -ano |findstr "5037"  //查找哪些服务占用了这个端口
   TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 18252 //在任务管理器中结束PID为18252的程序

debug快捷键:

F5   单步调试进入函数内部。
F6   单步调试不进入函数内部,如果装了金山词霸2006则要把“取词开关”的快捷键改成其他的。
F7   由函数内部返回到调用处。
F8   一直执行到下一个断点。
F11 这个好像是重新运行debug的,我也不确定,一直就当做重新运行debug的快捷键用的,呵呵。

创建一个Android应用

android create project -n HelloWorld -t 8 -p HelloWorld -k org.crazyit.helloworld -a HelloWorld

说明:

res目录存放各种资源:layout-界面布局  values-存xml格式的资源文件(strings.xml, colors.xml, 尺寸资源dimens.xml)

drawable-ldpi,  drawable-mdpi,  drawable-hdpi, drawable-xdpi  四个子目录存低、中、高、超高4种分辨率的图片文件

AndroidManifest.xml 是项目的系统清单文件,控制应用的名称、图标、访问权限等整体属性。此外Android应用的Activity、Service、ContentProvider、BroadcastReceiver这4大组件都需要再这个文件中配置。

build.xml   Ant生成文件,可以用它通过Ant生成、安装Android项目

Android应用基本组件

Activity  负责与用户交互的组件。相当于Swing编程中的JFframe。只能通过setContentView(View)来显示指定组件。

View  是所有UI控件和容器控件的基类。类似于SWing编程中的JPanel。 View组件需要放到容器组件中,或使用Activity降它显示出来。View的重要子类ViewGroup,通常作为其它组件的容器使用,除了包含View,还可以再次包含ViewGroup,也可以被当成View使用。

Service  与Activity的地位并列,通常位于后台运行,一般不与用户交互、没有图形用户界面。拥有独立的生命周期,提供后台服务或健康其它组件的运行状态。

BroadcastReceiver  广播消息接收器,事件源是Android应用中的其它组件。

ContentProvider  是Android系统跨应用的数据交换标准。一个应用使用ContentProvider暴露自己的数据,另一个应用通过ContentResovler来访问数据。

Intent  是Android应用内不同组件之间通信的载体。Intent可以其它另一个Activity,也可以启动一个Service组件,还可以发一条广播消息来触发系统中的BroadcastReceiver。也就是说Intent是这三种组件之间的通信载体。 显示Intent指定类名,隐式Intent指定条件。

IntentFilter  是被调用组件用来声明自己所满足的条件,声明自己能处理哪些隐式Intent。

签名Android应用程序:避免包名相同的应用相互覆盖

Android开发把项目打包成apk