Android项目的目录结构
- Activity:应用被打开时显示的界面
- src:项目的java代码
gen:
- buildConfig.java:应用是否可以debug
- R.java:项目中所有资源文件的资源id
Android.jar:Android的jar包,导入此包方可使用Android的api
- libs:导入第三方jar包
- assets:存放资源文件,比方说mp3、视频文件等较大的资源文件
- bin:存放编译打包后的文件
- res:存放资源文件,存放在此文件夹下的所有资源文件都会生成资源id
- drawable:存放图片资源
- layout:存放布局文件,把布局文件通过资源id指定给activity,界面就会显示出该布局文件定义的布局
- menu:定义菜单的样式
- values
- Strings.xml:存放字符串资源,每个资源都会有一个资源id
- dimens.xml:长度资源文件,用来定义长度资源,存放屏幕适配所用到的尺寸.
- style.xml:样式和主题资源文件,存放android下显示的样式.
- values-sw600dp: 7寸平板所对应的值.
- values-sw720dp-land: 10寸平板所对应的值.
- values-v11: 指定3.0版本以上的手机显示的样式.
- values-v14: 指定4.0版本以上的手机显示的样式.
Android的配置文件(清单文件即AndroidManifest.xml)
- android应用程序的入口文件. 声明了android里边的组件. 和相关配置信息.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.neo.demo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.neo.demo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
- package:应用在系统中的唯一识别,应用生成的文件都会存放在此路径下
- versionCode:应用的版本号
- 具有以下子节点的activity就是入口activity:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
- Android的四大组件在使用前全部需要在清单文件中配置
<Application/>
的配置对整个应用生效<activity/>
的配置对该activity生效
安装路径
- 第三方应用保存路径:data/app
- 系统应用保存路径:system/app
- data/data/包名文件夹:系统为每一个应用提供的一个专属空间
DDMS
- Dalvik debug monitor service
- Dalvik调试监控服务
虚拟机的区别:
JVM: .java –> javac –> .class –> jar –> .jar
架构: 堆栈DVM: .java –> javac –> .class –> dx.bat –> .dex
架构: 寄存器(cpu上一块高速的缓存)
常用的adb指令
Android debug bridge:安卓调试桥
- adb start-server:启动adb进程
- adb kill-server:杀死adb进程
- adb devices:查看当前与开发环境连接的设备,此命令也可以启动adb进程
- adb install XXX.apk:往模拟器安装apk
- adb uninstall 包名:删除模拟器中的应用
- adb shell:进入linux命令行
- ps:查看运行进程
- ls:查看当前目录下的文件结构
- netstat -ano:查看占用端口的进程
打包安装过程(Run as Android Application ) :
生成apk文件.
1). 生成.dex文件.
2). 资源索引表的生成resources.arsc.
3). 准备未编译文件.
4). 清单文件AndroidMenifest.xml文件转换成二进制.
5). 使用debug.keystore对整个应用程序进行打包签名.加载apk文件到模拟器中.
把apk文件加载到/data/local/tmp/xxx.apk安装应用程序.
1). 把/data/local/tmp/xxx.apk文件, 剪切/data/app/包名-1.apk
2). 在/data/data/文件夹下以包名创建一个文件夹, 用于存储当前程序的数据.
3)在packages.xml和packages.list文件中分别添加一条记录.