【Android从零单排系列三】《认识一下Android项目结构》

再见孙悟空_ 发表于 2022/05/31 10:47:17 2022/05/31
【摘要】 目录​​前言​​​​一.Android项目结构​​​​二.代码示例​​​​1.AndroidManifest.xml​​​​2.build.gradle​​前言前两篇文章介绍了一下android发展的历史背景、android环境搭建,这篇文章和大家说一下android项目的目录结构及作用。一.Android项目结构app :主程序文件夹,放程序的各个文件夹, res 里面是资源文件,如图片、...

目录

​前言​

​一.Android项目结构​

​二.代码示例​

​1.AndroidManifest.xml​

​2.build.gradle​


前言

前两篇文章介绍了一下android发展的历史背景、android环境搭建,这篇文章和大家说一下android项目的目录结构及作用。

一.Android项目结构

app :主程序文件夹,放程序的各个文件夹, res 里面是资源文件,如图片、layout、values 等资源。

        build: 构建目录

        libs: 依赖的包

        src: 写 Java 代码的地方

        res: 资源文件

        anim:存放动画文件

        drawable: 图像资源,存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的 drawable 类型的 XML 文件。

        layout: 布局资源

        mipmap: 图像资源

                    mipmap-hdpi:高分辨率

                    mipmap-mdpi:中等分辨率

                    mipmap-xhdpi:超高分辨率 默认项目图片都放到这里面

                    mipmap-xxhdpi:超超高分辨率

         values:

                    colors: 色彩资源

                    string: 字符串资源

                    demens: css配置文件,定义尺寸资源(图中未给出)

                    styles: 定义样式资源

            AndroidManifest.xml: 主配置文件,用于配置各个组件的访问权限

            build.gradle 文件默认放依赖的各种库文件

二.代码示例

我挑一些典型的文件给大家说明下

1.AndroidManifest.xml

    package="com.hzhl.zhgd">


    
    

    
    

    
    
    
    


    <application
        android:name="com.hzhl.zhgd.application.AppApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true"
        android:theme="@style/Theme.WisdomBuild"
        android:usesCleartextTraffic="true">
        <activity
            android:name="com.hzhl.zhgd.ui.SplashActivity"
            android:exported="true"
            android:theme="@style/Theme.Main">
            
                

                
            
        
        <activity
            android:name=".ui.MainActivity"
            android:launchMode="singleTop" />
        
        
        
        
        
        
        <activity
            android:name=".ui.home.check.CheckRecordActivity"
            android:windowSoftInputMode="stateHidden|adjustPan" />
        
        
        
        
        
        <activity
            android:name=".ui.home.check.CheckDetailActivity"
            android:windowSoftInputMode="adjustPan" />
        

    
    
        
            

            
        
        
            

            
        
    


</activity
</activity
</activity
</activity
</application

AndroidManifest.xml里面主要配置各个activity的声明,新建一个activity就要在这里面配置一下。

2.build.gradle

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'kotlin-parcelize'
}

def app_android = this.getRootProject().ext.app_android
def basic_app_dependencies = this.rootProject.ext.basic_app_dependencies

android {
    compileSdk app_android.compileSdkVersion

    defaultConfig {
        applicationId app_android.applicationId
        minSdk app_android.minSdkVersion
        targetSdk app_android.targetSdkVersion
        versionCode app_android.versionCode
        versionName app_android.versionName
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }

    dataBinding {
        enabled = true
    }
}

dependencies {
    basic_app_dependencies.each { k, v ->
        implementation v
    }
    implementation "androidx.multidex:multidex:2.0.1"
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation project(':common')
    implementation 'com.qianwen:update-app:3.5.2'
    implementation 'com.qianwen:okhttp-utils:3.8.0'
    implementation 'com.github.getActivity:XXPermissions:13.5'
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
}

这里面是基础配置及引用的各个库文件

本系列文章只适合初学者,有经验的开发直接绕行,今天先到这里吧,明天继续给大家分享。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。