安卓开发项目结构介绍01
安卓开发项目结构介绍
1.adb(Android Debug Bridge,调试桥)是一个debug工具,可将其他工具接入模拟器和设备,通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序。除了可以让其他工具(ADT插件)功能生效以外,还可以使用命令行上传或下载文件、安装或卸载程序包、通过进入设备或模拟器的shell环境访问许多其他功能。当我们运行Eclipse时adb进程就会自动运行。
adb是一个客户端/服务器端程序,其中客户端是用来操作的电脑,服务器端是Android设备。adb安装在Android SDK的platform-tools目录下。
(1)查看设备:命令adb devices
(2)安装软件:adb install <apk文件位置>
(3)卸载软件:adb uninstall <软件名>或 adb uninstall -k <软件名>-k是卸载软件保留配置和缓存文件。
(4)登陆设备shell:adb shell
(5)从计算机上发送文件到目标机:adb push <本地路径> <远程路径>
(6)从目标机上下载文件到计算机:adb pull <远程路径> <本地路径>
(7)显示帮助信息:adb help
2.AVD(Android Virtual Device,安卓虚拟设备),一般称其为Android模拟器,可以用来模拟一个Android手机或平板电脑,由于可以虚拟出来各个API版本、各种屏幕分辨率的Android设备,所以AVD在Android开发中很常用。 AVD没有SIM卡,也没有WiFi网络,硬件资源受限,所以有部分Android应用程序需要在真机(真实的Android设备)上调试,比如使用到3G和WiFi网络、使用3D渲染、使用到SIM卡等功能的应用程序。 3.DDMS工作原理 DDMS将搭建起IDE与测试终端(Emulator或connected device)的链接。DDMS可以实时监测到测试终端的连接情况,当有新的测试终端连接后,DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的。 DDMS监听第一个终端应用程序进程的端口为8600,应用程序进程将分配8601,如果有更多终端或者更多应用程序进程将按照这个顺序依次类推。DDMS通过8700端口接收所有终端的指令。 4.安卓项目结构
(1)src目录:Java源代码的存放位置,项目工程中的MainActivity.java就在这个文件夹下。
(2)gen目录:存放系统自动生成的配置文件,开发者不要更改。其中R.java是资源索引文件,将XML文件中的资源映射为一个资源ID,供Java代码使用。Android开发工具会自动根据你放入res目录的XML界面文件/图标和常量,同步和修改R.java文件。如果不能自动生成,说明XML文件中含有错误。
(3)assets目录;也可以存放资源,但不会生成资源ID,需要通过AssetMenager以二进制的形式访问。
(4)bin目录:存放应用程序编译后生成的可执行文件。
(5)libs目录:存放应用程序所使用的JAR包,可以把使用到的第三方JAR包放到这个文件夹里面。
(6)res目录:存放应用程序用到的所有资源:界面布局、字符串、图片、多媒体资源等。但它和 assets目录最大的区别在于,res目录下的资源文件会在gen目录下的R.java文件中产生以资源文件名命名的静态属性。 (7)AndroidManifest.xml:应用级的配置文件,配置一些与应用程序有关的重要信息,包括主包名、权限、程序组件等等。这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。 (8)project.properties文件:项目环境信息,一般不需要修改此文件。 5.Android的应用程序组件:
(1)Activity——活动
Activity为用户提供了一个可视的用户界面。一个应用程序由一个或多个activity组成,需要多少个,取决于应用程序和它的设计。典型的,当应用程序启动的时候,activity中的一个要首先、显示给用户。从一个activity移动到另一个,是用过当前的activity启动下一个来完成的。视图层次通过Activity.setContentView() 方法放到activity的窗口上。
(2)Service——服务
service没有用户界面,但它会在后台一直运行。应用程序可以连接到一个正在运行中的service。当连接到一个service后,可以使用这个service向外暴露的接口与这个service进行通信。对于上面提到的播放音乐的service,这个接口可能允许用户暂停,停止或重新播放音乐。与activity以及其它组件一样,service同样运行在应用程序进程的主线程中。所以它们不能阻塞其它组件或用户界面,通常需要为这些service派生一个线程执行耗时的任务。
(3)Broadcastreceiver——广播接收器 broadcast receiver不执行任何任务,仅仅是接受并响应广播通知的一类组件。大部分广播通知是由系统产生的。 一个应用程序可以包含任意数量的boradcastreveiver来响应它认为很重要的通知。 broadcast receiver不包含任何用户界面。然而它们可以启动一个activity以响应接受到的信息,或者通过NotificationManager通知用户。可以通过多种方式使用户知道有新的通知产生,如闪动背景灯、震动设备、发出声音等。通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息。 (4)Content provider——内容提供者 应用程序可以通过content provider访问其它应用程序的一些私有数据,这是Android提供的一种标准的共享数据的机制。共享的数据可以是存储在文件系统中、SQLite数据库中或其它的一些媒体中。content provider扩展自ContentProvider类,通过实现此类的一组标准的接口可以使其它应用程序存取由它控制的数据。然而应用程序并不会直接调用ContentProvider中的方法,而是通过ContentResolver。ContentResolver能够与任何一个ContentProvider通信,它与ContentProvider合作管理进程间的通信。
代码成就万世基积沙镇海
梦想永在凌云意意气风发