虚拟机选择
Android系统目前支持如下七种不一样的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64(从2014年起),每一种都关联着一个相应的ABI。android
应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤为是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。在Android系统上,每个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64。git
若是项目中使用到了NDK,它将会生成.so文件,所以显然你已经在关注它了。若是只是使用Java语言进行编码,你可能在想不须要关注.so文件了吧,由于Java是跨平台的。但事实上,即便你在项目中只是使用Java语言,不少状况下,你可能并无意识到项目中依赖的函数库或者引擎库里面已经嵌入了.so文件,并依赖于不一样的ABI。windows
当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。在x86设备上,libs/x86目录中若是存在.so文件的话,会被安装,若是不存在,则会选择armeabi-v7a中的.so文件,若是也不存在,则选择armeabi目录中的.so文件(由于x86设备也支持armeabi-v7a和armeabi)。架构
as界面工具
区域1(运行工具)app
一、编译2中显示的模块
二、当前项目的模块列表
三、运行2中显示的模块
四、调试2中显示的模块
五、测试2中显示的模块代码覆盖率
六、调试安卓运行的进程
七、从新运行2中显示的模块
八、中止运行2中显示的模块
区域2(工程目录工具)maven
一、展现项目中文件的组织方式,默认是以Android方式展现的,可选择“Project、Packages、Scratches、ProjectFiles、Problems…”等展现方式。平时用的最多的就Android和Project两种。
二、定位当前打开文件在工程目录中的位置。
三、关闭工程目录中全部的展开项。
四、额外的一些系统配置,点开后是一个弹出菜单:函数
Autoscroll to Source 和 Autoscrollfrom Source两个勾选起来后,Android Studio会自动定位当前编辑文件在工程中的位置,用起来会很爽。其余功能你们能够本身摸索摸索
区域3(代码区)
这个区域主要是用来编写代码和设计布局。
一、已打开的文件的Tab页。(在Tab页上按下Ctrl键 + 点击鼠标会出现一个弹出菜单会有惊喜哦!),进入系统文件位置
二、UI布局预览区域。(只有在选择3中的text,而后选择工具栏view>>toolwindows>>preview)
三、布局编辑模式切换,对于一些老鸟来讲更喜欢经过Text来编辑布局,新手能够试试Design编辑布局,编辑后再切换到Text模式,对于学习Android布局设计颇有帮助。
区域4(日志区)
这个区域大部分是用来查看一些输出信息的。
一、终端 - 喜欢命令行操做的伙伴不用额外启动终端了。
二、监控 - 能够查看应用的一些输出信息。
三、信息 - 工程编译的一些输出信息。
四、运行 - 应用运行后的一些相关信息。
五、TODO - 标有TOTO注释的列表。
六、事件 - 一些事件日志。
七、Gradle控制台,经过这个能够了解Gradle构建应用的时候一些输出信息。
区域5(目录区)
一、Gradle编译系统,版本由wrapper指定
二、Android Studio IDE所须要的文件
三、应用相关文件的存放目录
四、编译后产生的相关文件
五、存放相关依赖库
六、代码存放目录
七、资源文件存放目录(包括:布局、图像、样式等等)
八、应用程序的基本信息清单,描述哪些个组件是存在的
九、Git版本管理忽略文件,标记出哪些文件不用进入git库中
十、Android Studio的工程文件
十一、模块的gradle相关配置
十二、代码混淆规则配置
1三、工程的gradle相关配置
1四、gradle相关的全局属性设置
1五、本地属性设置(key设置,androidsdk位置等属性)
区域6(调试)
一、Step Over(F8)- 程序向下执行一行,若是当前行有方法调用,这个方法执行完毕返回,而后到下一行。
二、Step Into(F7)- 程序向下执行一行,若是当前行有用户自定义方法(非官方类库方法)调用,则进入该方法。
三、Force StepInto(Alt+Shift+F7) - 程序向下执行一行,若是当前行有方法调用,则进入该方法。
四、Step Out(Shift+F8)- 若是在调试的时候你进入了一个方法,并以为该方法没有问题,你就可使用Step Out跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
五、Drop Frame - 点击该按钮后,你将返回到当前方法的调用处从新执行,而且全部上下文变量的值也回到那个时候。只要调用链中还有上级方法,能够跳到其中的任何一个方法。
六、Run toCursor(Alt+F9) - 一直运行到光标所在的位置。
七、Resume Program(F9) - 一直运行程序直到碰到下一个断点。
八、View Backpoints(Ctrl + Shift+F8) - 查看你设置过的全部断点并能够设置断点的一些属性
九、Mute Backpoints- 选中后全部的断点别设置成无效状态。再次点击能够从新设置全部断点有效。
在点击了View Backpoints按钮后,会出现一个断点属性窗口,能够对断点进行一些更高级的设置。
应用打包签名
基础
一个 Android Studio 项目中,会存在多个 .gradle 文件。其中, project 目录下存在一个 build.gradle 文件和每个 module 会存在一个 build.gradle 文件。
工程中的build.gradle工具
1.buildscript { 2. repositories{ 3. jcenter() // 声明使用 maven 仓库 4. } 5. dependencies{ 6. // 依赖android提供的2.1.0-alpha5的gradle build 7. classpath'com.android.tools.build:gradle:2.1.0-alpha5' 8. } 9.} 10.// 为全部的工程的repositories配置为jcenters 11.allprojects { 12. repositories{ 13. jcenter() 14. } 15.} 16. 17.// 清楚工程的任务 18.task clean(type: Delete) { 19. deleterootProject.buildDir 20.}
模块中的build.gradle布局
1.// 这表示该module是一个app module 2.apply plugin:'com.android.application' 3.android { 4. //基于哪一个版本编译 5. compileSdkVersion23 6. // 基于哪一个构建工具版本进行构建的 7. buildToolsVersion"23.0.3" 8. 9. // 缺省配置主要包括:应用ID,最小SDK版本,目标SDK版本,应用版本号、应用版本名 10. defaultConfig{ 11. applicationId"open_open.com.helloworld" 12. minSdkVersion 10 13. targetSdkVersion 23 14. versionCode 1 15. versionName "1.0" 16. } 17. 18. // buildTypes是构建类型,经常使用的有release和debug两种,能够在这里面启用混淆,启用zipAlign以及配置签名信息等。 19. buildTypes{ 20. release { 21. minifyEnabled false 22. proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' 23. } 24. } 25. 26.} 27. // dependencies它定义了该module须要依赖的jar,aar,jcenter库信息。 29.dependencies { 30. compilefileTree(dir: 'libs', include: ['*.jar']) 31. testCompile'junit:junit:4.12' 32. compile'com.android.support:appcompat-v7:23.2.1' 33.}