Android之路

Posted developerchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android之路相关的知识,希望对你有一定的参考价值。

(一)app内文件详解

1. build包含编译时自动生成的文件。

2. libs第三方jar包,需要把jar包放在libs,会被自动添加到构建路径里去。

3. androidTest 此处是用来编写Android Test 测试用例的,可以对项目进行一些自动化测试

4. java 放置java代码的地方 activity文件就在里面。

5. res项目中使用到的所有图片/布局/字符串等资源都要存放在这个目录下。图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下。

6. AndroidManifest.xml

整个Android项目的配置文件,程序中定义的所有四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明

7. test 此处是用来编写 Unit Test测试用例的,是对项目进行自动化检测的另一种方式。

8. .gitignore  将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitignore文件类似。

9. app.iml intellij IDEA自动生成的文件

10. build.gradle app模块的gradle构建脚本,这个文件会指定很多项目构建相关的配置。

11. proguard-rules.pro 用于指定项目代码的混淆规则,当代码开发完成后达成后打成安装包文件,如果不希望代码被别人破解,通常会将代码进行混淆。

 

(二)代码分析

Androidmanifest.xml 中,对activity进行注册,intent-filter里的两行代码非常重要,

<action android:name= "android.intent.action.MAIN" />和<category android:name="android.intent.category. LAUNCHER" />表示 HelloWorldActivity 是这个项目的主活动,在手机上点击应用图标,首先启动 的就是这个活动。 

 

activity.java 中,

Activity 是 Android 系统提供的一个活动基类,我们项目中所有的活动都必须继承它或者它的子 类才能拥有活动的特性(AppCompatActivity 是 Activity 的子类)。 

HelloWorldActivity 中有一个 onCreate()方法,这个方法是一个活动被创建时必定要执行的方法 

onCreate() 方法的第二行调用了 setContentView()方法,就是这个方法给当前的活动引入了一个 hello_world_layout 

 

(三)项目中的资源

drawable图片,mipmap图标,values字符串样式颜色等配置,layout布局文件

之所以有这么多 mipmap 开头的文件夹,其实主要是为了让程序能够更好地兼容各种设备。 drawable 文件夹也是相同的道理,虽然 Android Studio 没有帮我们自动生成,但是我们应该自己创 建 drawable-hdpi、drawable-xhdpi、drawable-xxhdpi 等文件夹 

res/values/strings.xml 两种引用方式:

1. 在代码中R.string.app_name 2.在xml中@string/app_name string部分可以替换成drawable mipmap layout等。

AndroidManifest.xml中应用图标通过Android:icon指定,应用名称android:label指定。修改图标或者名字在此处进行。

 

(三)build.gradle文件

Android studio 采用Gradle来构建项目的。Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言DSL来声明项目设置,摒弃了传统基于XML 如Ant 和 Maven的各种繁琐配置。有两个build.gradle文件,一个在最外面一个在app里。

外面(如果想添加一些全局项目构建配置,可以改动):

两处repositories的闭包中都声明了jcenter()这行配置。它是一个代码托管仓库。很多Android开源项目都会选择将代码托管到jcenter上,声明了这行配置之后,我们就可以在项目中轻松引用任何jecenter上的开源项目了。

dependencies闭包中使用了classpath声明了一个Gradle插件。因为Gradle不是专门构建Android项目而开发的,Java,C++等很多种项目都可以使用Gradle来构建。因此如果我们想用它构建Android要声明,com.android. tools.build:gradle:版本号

app内:

第一行应用了一个插件 apply plugin,一般有两种值可以选择:com.android.application 表示这是一个应用程序模块com.android.library表示这是一个库模块。应用程序模块和库模块的最大区别在于,一个是可以直接运行的,一个只能作为代码库依附于别的应用程序模块。

 

接下来是一个android 闭包,用于配置项目构建的各种属性。

compileSdkVersion 用于指定项目的编译版本,这里指定成 24 表示使用 Android 7.0 系统的 SDK 编译 

buildToolsVersion 用于指定项目构建工具的版本

         Android闭包里嵌套的defaultConfig闭包

         applicationId 用于指定项目的包名,前面我们在 创建项目的时候其实已经指定过包名了,如果你想在后面对其进行修改,那么就是在这里修改的。 

         minSdkVersion 用于指定项目最低兼容的 Android 系统版本 ,15 表示最低兼容到 Android 4.0 系统

         targetSdkVersion 指定的值表示你在该目标版本上已经做过了充分的测试, 系统将会为你的应用程序启用一些最新的功能和特性。比如说 Android 6.0 系统中引入了运行时 权限这个功能,如果你将 targetSdkVersion 指定成 23 或者更高,那么系统就会为你的程序启 用运行时权限功能,而如果你将 targetSdkVersion 指定成 22,那    么就说明你的程序最高只在 Android 5.1 系统上做过充分的测试,Android 6.0 系统中引入的新功能自然就不会启用了。 

          versionCode 用于指定项目的版本号versionName 用于指定项目的版本名 

 

         buildTypes闭包,用于指定生成安装文件的相关配置。通常只会有两个字闭包,debug和release。debug用于指定生成测试版安装文件的配置,release用于指定生成正式版安装文件的配置。

未完。。。

以上是关于Android之路的主要内容,如果未能解决你的问题,请参考以下文章

Android Camera探究之路——起步

android开发之路01

Android自学之路--ContentProvider

Android学习之路-录音功能实现

android菜鸟之路-事件分发机制总结

android开发之路03