温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android小白的学习之路

发布时间:2020-07-03 00:49:57 来源:网络 阅读:539 作者:itzhongxin 栏目:移动开发

 本人作为一名android小白初次写博客,不好之处请多多包含,欢迎各位大神指点迷津.....

 初次接触android不管是从学校还是培训机构出来的,最先接触的知识肯定是安装开发工具了(Android Studio),这里就不再详细介绍了(百度一大堆),其次就是学习工具的使用,比如一些常用的快捷键还有创建项目等等,最后就是各种控件以及各种知识点的学习了。

 作为小白的一员,基本上我也是这么过来的,但是到真真工作的时候问题就来了,配置文件中各个参数是什么意思?引入三方库时或者系统版本过高时都需要更改配置文件但无从下手,我不知道其他初学者是不是也会遇见这样类似的问题,反正我是遇见了,于是乎下面就将新建项目中的文件做一详细说明,希望对一些不懂的初学者有所帮助。

 1..gradle和.idea

 这两者目录下放置的都是Android Studio自动生成的一些文件,我们无需关心也不必要对其做修改。

 2. app

 这里面放置的是我们所写的项目代码以及资源等内容,我们后续的开发工作基本上都是在这个目录下面进行的

 3. build

 这里面放置的时编译时自动产生的文件,不需要修改,也不需要纳入项目源代码管理中。

 4. gradle

 这个目录下包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动工具本地缓存情况决定是否需要联网下载gradle。Android Studio默认是没有启用gradle wrapper的方式,如果需要打开,可以在File-Setting-Build,Execution,Deployment-Gradle中配在修改。

     5. .gitignore

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

     6.  build.gradle

     这个是项目全局的gradle配置文件,通常这个文件是不需要修改的

     7.  gradle.properties

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

     8.  gradlew 和 gradlew.bat

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

     9. .iml

     iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件(Android Stuido 是基于IntelliJ IDEA 开发的),用于标识这是一个 IntelliJ IDEA项目,我们不需要修改这个文件中的任何内容

     10. local.properties

     这个文件用于指定本集中的Android SDK 路径,通常内容都是自动生成的,我们并不需要修改。除非你本机中的SDK位置发生了变化,那么就将这个文件中的路径改成新的位置即可

      11. setting.gradle

     这个文件用于指定项目中所有引入的模块。通常情况下模块的引入都是自动完成的,需要我们手动去修改这个文件的场景可能较少


      下面我们来详细看一下最外层的build.gradle

  • //设置脚本的运行环境                  

  • buildscript {  

  •                   

  •        //使用maven的依赖,用于项目的依赖       

  •        repositories {  

  •             mavenCentral()  

  •         }  

  •         //依赖插件  

  •         dependencies {  

  •             //注意,插件使用这里的Gradle版本尽量要和你Android Studio的Gradle插件版本一致  

  •             classpath 'com.android.tools.build:gradle:1.3.0'  

  •         }  

  • }  

  •   

  •   

  • //举例  

  • //共享配置  

  • allprojects {  

  •    //所有的项目(包括当前项目以及其子项目)应用上idea插件。  

  •    apply plugin: 'idea'  

  • }  

 

  app模块下的build.gradle


  • //声明当前构建的是 android 应用 还是 library  

  • apply plugin: 'com.android.library'  

  • apply plugin: 'com.android.application'  

  •                   

  • //依赖包  

  • dependencies{  

  •     //加载本地目录下的jar包   

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

  •     //加载本地目录下的.so库,版本>2.4 Gradle可使用,低版本添加.so 请google  

  •     compile fileTree(dir: 'libs/armeabi', include: '*/so')  

  •     //直接指定依赖的包,地址是当前工程为根目录  

  •     compile files('libs/android-support-v4.jar')  

  •     //引用当前目录下的android-library项目,‘eventbuslib’为项目名称,注意":"一定要有  

  •     compile project(':eventbuslib')  

  •     //配置远程仓库中的jar包,打包时,检查本地有没有,若没有则下载到本地  

  •     //下载的位置:项目名/build/intermediates/exploded-arr/  

  •     compile 'com.android.support:appcompat-v7:22.0.0'  

  • }  

  •                        

  • //设置编码类型  

  • tasks.withType(JavaCompile) { options.encoding = "UTF-8" }  

  •   

  •   

  • //设置当前Android应用构建信息  

  • android {  

  •   

  •     //打包SDK版本  

  •     compileSdkVersion 21  

  •     //编译工具版本  

  •     buildToolsVersion "20.0.0"  

  •       

  •     //默认打包配置  

  •     defaultConfig {  

  •         minSdkVersion 14  

  •         targetSdkVersion 21  

  •         versionCode 1  

  •         versionName "1.0"  

  •     }  

  •   

  •     //资源文件目录  

  •     sourceSets{    

  •           main{    

  •                 manifest.srcFile 'AndroidManifest.xml'    

  •                 java.srcDirs = ['src']    

  •                 resources.srcDirs  = ['src']    

  •                 aidl.srcDirs = ['src']    

  •                 renderscript.srcDirs = ['src']    

  •                 res.srcDirs = ['res']    

  •                 assets.srcDirs = ['assets']    

  •             }    

  •     }  

  •   

  •     //打签名设置  

  •     signingConfigs{  

  •         myConfig{  

  •             //key文件,绝对路径和相对路径都可以  

  •             storeFile file("doucument/pragram_key/bluekey")  

  •             storePassword "key钥密码"  

  •             keyAlias      "别名"  

  •             keyPassword   "别名密码"  

  •         }  

  •     }  

  •   

  •     //构建签名和混淆  

  •     buildTypes {  

  •         release {  

  •             //签名文件  

  •             signingConfig  signingConfigs.myConfig  

  •             //是否打开混淆  

  •             minifyEnabled false  

  •             //混淆配置文件  

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

  •         }  

  •     }  

  •   

  •     //打包设置  

  •     packagingOptions {  

  •            exclude 'META-INF/DEPENDENCIES.txt'  

  •            exclude 'META-INF/LICENSE.txt'  

  •            exclude 'META-INF/NOTICE.txt'  

  •            exclude 'META-INF/NOTICE'  

  •            exclude 'META-INF/LICENSE'  

  •            exclude 'META-INF/DEPENDENCIES'    

  •            exclude 'META-INF/notice.txt'    

  •            exclude 'META-INF/license.txt'    

  •            exclude 'META-INF/dependencies.txt'    

  •            exclude 'META-INF/LGPL2.1'    

  •            exclude 'META-INF/ASL2.0'    

  •     }    

  •       

  •     //测试所在的路径,这里假设是tests文件夹,没有可以不写这一行  

  •     instrumentTest.setRoot('tests')  

  •   

  •     // Move the build types to build-types/<type>  

  •     // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...  

  •     // This moves them out of them default location under src/<type>/... which would  

  •     // conflict with src/ being used by the main source set.  

  •     // Adding new build types or product flavors should be accompanied  

  •     debug.setRoot('build-types/debug')  

  •     release.setRoot('build-types/release')  

  • }  


 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI