目录
前两篇文章介绍了一下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 文件默认放依赖的各种库文件
我挑一些典型的文件给大家说明下
<?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"
}
这里面是基础配置及引用的各个库文件
本系列文章只适合初学者,有经验的开发直接绕行,今天先到这里吧,明天继续给大家分享。