目录
前言
前两篇文章介绍了一下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
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hzhl.zhgd"> <!-- 网络权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 网络状态权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> --> <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"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ui.MainActivity" android:launchMode="singleTop" /> <activity android:name=".ui.login.LoginActivity" /> <activity android:name=".ui.home.SelectProjectActivity" /> <activity android:name=".ui.mine.EditPwActivity" /> <activity android:name=".ui.mine.WebViewActivity" /> <activity android:name=".ui.mine.HelpActivity" /> <activity android:name=".ui.home.check.SafetyCheckListActivity" /> <activity android:name=".ui.home.check.CheckRecordActivity" android:windowSoftInputMode="stateHidden|adjustPan" /> <activity android:name=".ui.home.check.SelectAreaActivity" /> <activity android:name=".ui.home.check.SelectImageTypeActivity" /> <activity android:name=".ui.home.check.SelectUnitActivity" /> <activity android:name=".ui.home.check.SelectHiddenDangerActivity" /> <activity android:name=".ui.home.check.SelectUserActivity" /> <activity android:name=".ui.home.check.CheckDetailActivity" android:windowSoftInputMode="adjustPan" /> <activity android:name=".ui.home.check.QualityCheckListActivity" /> </application> <queries package="${applicationId}"> <intent> <action android:name="android.media.action.IMAGE_CAPTURE"> </action> </intent> <intent> <action android:name="android.media.action.ACTION_VIDEO_CAPTURE"> </action> </intent> </queries> </manifest>
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" }
这里面是基础配置及引用的各个库文件
本系列文章只适合初学者,有经验的开发直接绕行,今天先到这里吧,明天继续给大家分享。