Android_day01_第一章

分析第一个Android程序


Android模式的项目结构

Android模式的项目结构

  1. .gradle和.idea
    Android Studio自动生成文件
  2. app
    项目中的代码、资源等内容几乎都在这个目录下。
  3. build
    包含一些在编译时自动生成的文件。
  4. gradle
    包含了gradle wrapper的配置文件。
  5. .gitignore
    将指定的目录或文件排除在版本控制之外。
  6. build.gradle
    项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的。
  7. gradle.properties
    是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
  8. gradlew和gradlew.bat
    用来在命令行界面中执行gradle命令的。gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的
  9. HelloWorld.iml
    IntelliJ IDEA项目自动生成的一个文件。
  10. local.properties
    用于指定本机中的Android SDK路径,通常内容都是自动生成的,不需要修改。如果本机的SDK路径发生变化,将这个文件中的路径修改为新的路径。
  11. settings.gradle
    这个文件用于指定项目中所有引入的模块。

详细分析app目录

详细分析app目录
1. build
这个目录和外层的build目录类似,主要包含了一些在编译时自动生成的文件,但这个目录的内容更复杂。
2. libs
需要用到的第三方jar包放在libs目录下,会被自动添加到构建路径里去。
3. src/android Test
此处是用来编写Android Test测试用例的,可以对项目进行一些自动化测试。
4. src/main/java
放置所有Java代码的地方。
5. src/main/res
项目中使用到的所有图片、布局、字符串等资源都要存放在这个目录下。图片放在drawable目录,布局放在layout目录下,字符串放在value目录下。
6. src/main/AndroidManifest.xml
整个Android项目的配置文件,程序中定义的所有四大组件都需要在这个文件里注册,还可以给应用程序添加权限声明。
7. src/test
用来编写Unit Test测试用例,是对项目进行自动化测试的另一种方式。
8. .gitinore
将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitinore文件类似。
9. app.iml
IntelliJ IDEA项目自动生成的文件。
10. build.gradle
app模块的gradle构建脚本,指定很多项目构建相关的配置。
11. proguard-rules.pro
指定项目代码的混淆规则。

详解项目中的资源

res目录

详解项目中res目录 的资源
- 所有以drawable开头的的文件夹都是用来存放图片的。
- 所有以mipmap开头的文件夹都是用来存放应用图标的。
- value文件夹用来存放字符串、样式、颜色等配置的。

调用values的资源

string.xml文件中定义app的名称

<resources>
    <string name="app_name">HelloWorld</string>
</resources>

引用定义的app名称方法:
- 在代码中:R.string.app_name
- 在xml中:@string/app_name

调用其他资源方式类同,引用图片资源把string替换成drawable,引用图标则替换成mipmap,引用布局文件则替换成layout。可查看在AndroidManifest.xml中的用法:

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        ···
    </application>

详解build.gradle文件 ##

  • Android Studio采用Gradle来构建项目。Gradle是一种基于Groovy的领域特定语言(DSL)来声明项目设置,摒弃了传统基于XML的各种繁琐配置。

  • build.gradle一个位于最外层目录下,一个位于app目录下。

外层目录下的build.gradle文件 ###

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}
  • jcenter()代码托管仓库,很多Android开源项目都会选择将代码托管到jcenter上,声明了这行配置之后,可以在项目中轻松引用任何jcenter上的开源项目。

  • classpath 'com.android.tools.build:gradle:3.0.0'代表Gradle插件版本号。

app目录下的build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.myfzhou.helloworld"
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
  1. apply plugin
    一个插件,有两个值可选
    • com.android.application :表示这是一个应用程序模块,可直接运行;
    • com.android.library :表示这是一个库模块,只能作为代码库依附于别的应用程序模块来运行。
  2. android闭包
    • compileSdkVersion :指定项目的编译版本;
    • buidToolsVersion :指定项目构建工具的版本(书本项目有该段代码)。
  3. defaultConfig闭包
    • applicationId :指定项目的包名;
    • minSdkVersion :指定项目最低兼容Android系统版本;
    • targetSdkVersion :表示在该目标版本上已经做过了充分的测试,系统将会为你的应用程序启用一些最新的功能特性;
    • versionCode :指定项目的版本号;
    • versionName :指定项目的版本名。
  4. buildTypes闭包
    该闭包中用于指定生成安装文件的相关配置,通常只会有两个子闭包,一个是debug,一个release。
    • debug闭包:用于指定生成测试版安装文件的配置,该闭包可以忽略不写;
    • release闭包:用于指定生成正式版安装文件的配置。
      • minifyEnabled :用于指定是否对项目的代码进行混淆,true表示混淆,false表示不混淆;
      • proguardFiles :用于指定混淆时使用的规则文件,这里指定了两个文件:
        • proguard-android.txt 是在Android SDK目录下,里面是所有项目通用的混淆规则;
        • proguard-rules.pro 是在当前项目的根目录下,里面可以编写当前项目特有的混淆规则。
  5. dependencies闭包
    这个闭包功能十分强大,可以指定当前项目所有的依赖关系,Android Studio项目一共有3中依赖关系:
    • 本地依赖implementation fileTree(dir: 'libs', include: ['*.jar']):可以对本地的jar包或项目添加依赖关系;
    • 库依赖implementation 'com.android.support:appcompat-v7:26.1.0':可以对项目中的库模块添加依赖关系;
    • 远程依赖:可以对jcenter库上的开源项目添加依赖关系。

日志工具的使用

Android的日志工具Log

  1. Log.v() :用于打印那些最为琐碎的、意义最小的日志信息,对应级别是verbose;
  2. Log.d() :用于打印一些调试信息,对应级别是debug;
  3. Log.i() :用于打印一些比较重要的数据,可以分析用户行为数据,对应级别是info;
  4. Log.w() :用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复以下这些出现警告的地方,对应级别是warn;
  5. Log.e() :用于打印程序中的错误信息,比如程序进入到了catch语句当中,当有错误信息打印出来时候,一般都代表你的程序出现严重问题了,必须尽快修复,对应级别error。
tips

在onCreate()方法的外面输入logt,然后按下Tab键,就会以当前的类名作为值,自动生成一个TAG常量。之后在方法里只需要输入Log+方法名,按下Tab键,即可快速输入日志输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值