Android小白的学习之路

本人作为一名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‘)
  • }
时间: 2024-08-05 17:20:53

Android小白的学习之路的相关文章

Android 零基础学习之路

第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收:构造函数.this关键字.方法和方法的参数传递过程.static关键字.内部类,Java的垃极回收机制,Javadoc介绍. 4.对象实例化过程.方法的覆盖.final关键字.抽象类.接口.继承的优点和缺点剖析:对象的多态性:子类和父类之间的转换.抽象类和接口在多态中的应用.多态带来的好处.

Android程序员学习之路

和一些刚工作以及未毕业的同学沟通,很多同学对在没有工作机会或熟练Android人员指导的情况下,如何学习Android并提高Android水平比较关心.下面我从几个方面介绍一些方法和方式来和大家分享: 1.Android知识 1.1.网站资源 1.1.1.Android官网 这个是最权威最官方的.主要看设计篇 和开发篇 .API相关接口用到哪一个接口再去看.不用挨个看.当然现在可能会被墙,大家也可以看本地SDK目录下的docs中的index.html打开后的文档. 1.1.2.stackover

Android小白的成长之路-ListView优化提案

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能. 本文的重点即是从如下几个方面介绍如何对ListView进行优化. 1.convertView重用 利用好 convertView 来重用 View,切忌每次 getView() 都新建.ListView 的核心原理就是重用 View,如果重用 view 不改变宽高,重用V

day04关于MySqL&mdash;Android小白的学习笔记

Mysql入门 1. 数据库基本知识(了解) 1.1.数据库介绍 1.1.1.什么是数据库?数据库的作用是什么? 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作 想要存储并读取数据: 没有数据库: 1.新建一个文件夹用来存储文件: 2.把对应的数据以字符流的形式放入对应的文件中: 3.把文件以某种规律放入文件夹中: 4. 要查询对应数据时,需要将数据仓库所有文件以字符流形式获取并遍历,以取得对应数据的某些标

小白的学习之路

在今年四月份之前我还不是很清楚自己将来要做一些什么,直到我在三个月前找到了自己的目标,明白自己想要做些什么.在这三个月的时间我在学习web前端这条路上摸爬滚打,终于在今天想要创建自己的博客,希望可以记录与分享我在学习前端的道路上的一些心得与知识.也想给自己立一个flag:希望自己可以不忘初心,在学习前端的路上稳扎稳打,学习.丰富自己的知识. 原文地址:https://www.cnblogs.com/Alisa-k/p/11263219.html

前端小白的学习之路--HTML学习

HTML的补充学习 1. meta与base <meta http-equiv="refresh" content="2" > 2秒刷新一次 <base href="https://www.baidu.com" target="_blank"> 设置默认跳转地址以及跳转方式 <link rel="icon" sizes="any" mask href=&qu

Android热修复学习之旅——HotFix完全解析

在上一篇博客Android热修复学习之旅开篇--热修复概述中,简单介绍了各个热修复框架的原理,本篇博客我将详细分析QQ空间热修复方案. Android dex分包原理介绍 QQ空间热修复方案基于Android dex分包基础之上,简单概述android dex分包的原理就是:就是把多个dex文件塞入到app的classloader之中,但是android dex拆包方案中的类是没有重复的,如果classes.dex和classes1.dex中有重复的类,当classes.dex和classes1

Android开发学习之路--网络编程之xml、json

一般网络数据通过http来get,post,那么其中的数据不可能杂乱无章,比如我要post一段数据,肯定是要有一定的格式,协议的.常用的就是xml和json了.在此先要搭建个简单的服务器吧,首先呢下载xampp,然后安装之类的就不再多讲了,参考http://cnbin.github.io/blog/2015/06/05/mac-an-zhuang-he-shi-yong-xampp/.安装好后,启动xampp,之后在浏览器输入localhost或者127.0.0.1就可以看到如下所示了: 这个就

Android的学习之路(二)项目中原生文件的使用场景和文件介绍

1.src文件:java源代码存放目录 2.gen 文件:自动生成所有由android开发工具自动生成的文件,目录中最重要的就是R.java文件,这个文件由android开 发工具自动产生的.android开发工具会自动根据你存放res目录的资源,同步更新修稿R.java文件,正因为 R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java.R.java文件在应用中起到了字典的作 用,它包含了各种资源的ID,通过R.java,应用可以很方便的找到对应资源, 2.1R.java