Android开启旅程-分析第一个Android项目

项目结构:

project结构:

新建项目都会默认使用Android模式的项目结构。这是被Android studio转换过的,适用于快速开发。-

1..gradle和.idea

这两个目录都是放Android studio自生成的文件。无需关心,也不要手动编辑

2.app

代码、资源等开发工作几乎都是在这个目录下。

3.build

编译时自生成,无需关心。

4.gradle

这个目录包含了gradle wrapper的配置文件,使用grade wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否联网下载gradle。AS默认没有启动gradle wrapper的方式。如需打开:

File-->Settings-->Build-->Execution,Deployment-->gradle进行配置更改。

5..gitignore

这个文件是用来将指定的目录或文件排除在版本控制之外的。

6.build.gradle

项目全局的gradle构建脚本,通常不用修改,

7.gradle.properties

这是全局的gradle配置文件,在这里配置的属性将会影响到项目中的所有dradle编译脚本。

8.gradlew和gradlew.bat

这两个文件是用来命令行界面中执行gradle命令的,其中gradlew是在Linux或Mac系统中使用的,

gradlew.bat是在widows使用的。

9.HelloWord.iml

iml文件是所有Intellij IDEA项目都会自动生成的一个文件。用于标识这是一个Intellij IDEA项目,不需修改。(AS是基于Intellij IDEA开发的)

10.local.properties

这个文件用于指定SDK的路径,通常内容是自动生成的,我们并不需应该。

11.settings.gradle

这个文件用于指定项目所有引入的模块。由于Hello Word 项目只引入了一个app模块,该文件中只引入了一个模块。引入模块是自动完成的,一般不需要修改。

app目录解析:

1.build

这个目录与外界的build目录类似,包含一些编译时自动生成的文件,相对复杂一些,无需关心。

2.libs

放置第三方jar包,这个目录下的jar包会自动添加到构建路径中去。

3.AndroidTest

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

4.java

放置Java代码的地方。

5.res

存放项目中使用的图片、布局、字符串等资源。

图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下。

6.androidManifest.xml

整个项目的配置文件。组件注册、权限声明等。

7.text

此处是用来编写Unit Text测试用例的。对项目自动化测试的另一种方式。

8..gitignore

这个文件是将app模块内的指定目录或文件排除在版本控制之外,和外层的文件类似。

9.app.iml

IntelliJ IDEA项目自动生成的文件。我们不需关心或修改这个文件的内容。

10.build.gradle

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

11.proguard-rules.pro

这个文件指定项目代码的混淆规则,不希望被别人破解。

AndroidManifest.xml文件:

<activity android:name=".hellowordActivity">

              <intent-filter>

                        <activity android:name="android.intent.action.MAIN"/>

                         <category android:name="android.intent.category.LAUNCHER"/>

               <intent-filter>

<Activity>

这段代码是对HelloWordActivity这个活动的注册,没有注册的活动是不能使用的。

intent-filter与category表示是项目的主活动。

HelloWordActivity活动:

HelloWordActivity是继承自AppCompatActivity的,这是一种向下兼容的Activity。最低兼容到Android2.1。

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

AppCompatActivity是Activity是Activity的子类。

setContentView()方法:给当前活动引入一个布局。

详解项目中的资源

app-->res目录:

以drawable开头的用来放置图片、

以mipmap开头的用来放置应用图标、

以values开头的用来放置字符串 样式 颜色等配置、

layout文件夹用来放置布局文件。

drawable-hdpi、drawable-xhdpi、drawable-xxhdpi等文件夹放置不同分辨率的版本,系统会根据设备版本选择加载。

<resources>

<string name="app_name">helloword</string>

</resources>

在代码中通过R.string.app_name可以获得该字符串的引用。

在XML中通过@string/app_name可以获得该字符串的引用。

其中string可以替换为drawanle、mipmap、layout。

AndroidManifest.xml文件

<application

            android:allowBackup="true"

            android:icon="@mipmap/ic_launcher"

            android:label="@string/app_name"

            android:supportsRtl="true"

           android:theme="@style/AppTheme"

           ...>

</application>

应用图标Android:icon指定;应用名称Android:label指定。

详解build.gradle

Android studio 是用gradle来构建项目的。Gradle是一个非常先进的项目构建工具。它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置。摒弃了传统基于XML(如Ant和Maven)的各项繁琐配置。

外层build.gradle文件:

buildscript{

          repositories{

                     jcenter()

       }

         dependencies{

                      classpath'com.android.tools.build:gradle:2.2.0'

       }

}

allprojects{

          reposittories{

                  jcenter()

           }

}

这些代码都是自动生成的,语法结构上看上去有些难以理解 我们只看关键部分。

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

dependencies闭关包中使用classpath声明;了一个gradle插件。gradle并不是专门为Android项目而开发的Java、c++等很多项目都可以使用gradle来构建。因此我们想要使用它来构建项目的话,则需要声明com.android.tools.build.gradle:2.2.2这个插件。最后面部分是插件的版本号。

通常情况下不需要修改这个文件的内容,除非你想添加一些全局项目的构建配置

app目录下的build.gradle文件:

            apply plugin:'com.android.application'

            android{

                     compileSdkVersion 24

                     buildToolsVersion "24.0.2"

                      defaultConfig{

                                 applicationId "com.example.helloworld"

                                 minSdkVersion 15

                                 targetSdkVersion 24

                                 versionCode 1

                                 versionName "1.0"

}

buildTypes{

           release{

                  minifyEnabled false

                  proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'

           }

     }

}

dependencies{

            compile fileTree(dir:'libs',include:['*.jar'])

            compile 'com.android .support:appcompat-v7:24.2.1'

            testCompile 'junit:junit:4.12'

}

第一行代码应用了一个插件,一般有两种至可选:

com.android.application表示这是一个应用程序模块;com.android.library表示一个库模块。

区别于一个是直接运行的,一个只能作为代码库依附在别的应用程序模块来运行。

 第二个是一个大的Android闭包。这个闭包中我们可以配置项目构建的各种属性。

compileSdkVersion用于指定项目编译版本,24表示Android7.0系统的SDK编译。

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

defaultConfig可对项目更多细节的配置:

applicationId制定项目的包名;minSdkVersion用于指定项目最低兼容的Android系统版本;

targetSdkVersion指定的值表示在该版本上做过充分的测试,系统会为你的应用程序启动一些最新的功能和特性

versionCode 指定项目的版本号;versionName:指定项目的版本名。

buildTypes 闭包:用于指定生成安装文件的相关配置:通常只有两个闭包。一个是debug,一个是release.

debug用于指定生成测试版安装文件的相关配置,release用于指定生成正式版安装文件的相关配置。debug可忽略不写。

dependencies闭包:指定当前项目所有的依赖关系。

Android studio项目的三种依赖关系:本地依赖、库依赖、远程依赖。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值