Android学习20 -- 手搓App2(Gradle)

news2025/2/8 2:30:56

1 前言

昨天写了一个完全手搓的:Android学习19 -- 手搓App-CSDN博客

后面谷歌说不要用aapt,d8这些来搞。其实不想弄Gradle的,不过想着既然开始了,就多看一些。之前写过一篇Gradle,不过是最简单的编译,不涉及到安卓。Android学习18 -- Gradle_resourcehashescache.bin-CSDN博客

现在既然环境都搭建了,索性在上一篇的基础上一起弄弄Gradle看。

2 Gradle环境和配置 

新的文件结构和之前都有不同。

代码和AndroidManifest.xml都是放在app\src\main下面。

2.1 配置文件

根目录下面有一个build.gradle,app下面也要增加一个build.gradle。

整体来说文件增加非常多。可以参看最后的附录。

代码延续了之前的代码,src和AndroidManifest.xml都是上一篇文章中的。

增加的文件主要就是Gradle相关的。

在根文件夹下面增加两个build.gradle和gradle.properties:

build.gradle

buildscript {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/central' }
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.2'
    }
}

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/central' }
        google()
        mavenCentral()
    }
}

这里几个maven标志是为了解决无法下载的问题。换成了国内的阿里云服务器。。。

这里最坑的就是classpath 'com.android.tools.build:gradle:7.0.2',这里面gradle的版本我前后换了四五个。。。一直不停地有各种匹配的问题冒出来。单纯从出错信息,你还看不出来是gradle版本导致的问题。

gradle.properties

android.useAndroidX=true
android.enableJetifier=true

在App的文件夹中,也要增加一个build.gradle

plugins {
    id 'com.android.application'
}

android {
    compileSdk 28// Target Android 9

    defaultConfig {
        applicationId "com.example.simpleapp" // Replace with your package name
        minSdk 21 // Minimum SDK can be lower than 28
        targetSdk 28// Target Android 9
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
	implementation 'androidx.appcompat:appcompat:1.3.1'
}

因为目标设备是Android9,所以SDK选的28。

这里最坑的就是dependencies,里面要依赖什么库,哪个库要什么版本,不熟练的话根本不知道,还只能去猜碰运气。。。我是试了好多次。。。

2.2 环境

环境上也是非常折腾,之前用javac,aapt做包的时候,也没有挑JDK的版本。这里就不行了,必须要Android9匹配的版本,前后装了几个版本的JDK,还有Gradle,苦不堪言。。。最后换到jdk11,终于才可以了。至于Android_SDK,好像Gradle会自己管理,这个倒是不用手动去管理了,当然,这个也挺简单的。

3 构建

环境和配置文件弄好之后,运行构建本身倒是挺简单的,就是在根目录运行两个命令:

gradle wrapper
gradlew assembleDebug

但是真正运行这个堪称噩梦,无数次的报错,各种版本匹配,环境,配置的问题。如果没有GPT这些,估计我是真解决不了。

反正原则就是遇到问题解决问题吧,主要还是要根据Android9的版本,很多东西要切回老的组件。问题是你根本不知道什么版本安卓需要对应什么版本JDK,Gradle这些环境和一大堆库。。。

这里还有一个坑,默认状态下运行gradlew assembleDebug,会去下载Gradle,倒是因为网络问题,是大概率要timeout的。折腾了半天,最后参考的这篇:【flutter】 Running Gradle task ‘assembleDebug‘...超时问题_running gradle task 'assembledebug'...-CSDN博客

这里要修改gradle\wrapper\gradle-wrapper.properties,把里面的服务器位置改成这个https://mirrors.cloud.tencent.com/gradle/

无数次的折腾后,终于过了: 

没有编译,也没有d8,也不用手动签名了。在output下直接可以看到做好的apk

新的apk差不多1.5M,比之前完全手搓的大了非常多。用压缩软件打开做好的apk。

可以看到dex文件就是3个,其中第一个原始有2M多,res里面东西也很多,估计是Gradle搞的时候加了很多私货吧。。。

4 运行

编完之后之后就很顺利了,ADB直接安装。(安装前要先卸载之前的,否则会说签名不匹配)

adb install app-debug.apk

其实对比一下昨天完全手搓的,安装的时候没有提示说有组件太老了,而且界面精美了不少。看来Gradle确实多做了一些自动化的内容。但是确实配置太麻烦了。。。

5 附录

完整的文件列表:

E:.
│  build.gradle
│  gradle.properties
│  gradlew
│  gradlew.bat
│  settings.gradle
│
├─.gradle
│  ├─6.9.2
│  │  │  gc.properties
│  │  │
│  │  ├─fileChanges
│  │  │      last-build.bin
│  │  │
│  │  ├─fileHashes
│  │  │      fileHashes.lock
│  │  │
│  │  └─vcsMetadata-1
│  ├─7.0.2
│  │  │  gc.properties
│  │  │
│  │  ├─dependencies-accessors
│  │  │      dependencies-accessors.lock
│  │  │      gc.properties
│  │  │
│  │  ├─executionHistory
│  │  │      executionHistory.bin
│  │  │      executionHistory.lock
│  │  │
│  │  ├─fileChanges
│  │  │      last-build.bin
│  │  │
│  │  ├─fileHashes
│  │  │      fileHashes.bin
│  │  │      fileHashes.lock
│  │  │      resourceHashesCache.bin
│  │  │
│  │  ├─javaCompile
│  │  │      classAnalysis.bin
│  │  │      jarAnalysis.bin
│  │  │      javaCompile.lock
│  │  │      taskHistory.bin
│  │  │
│  │  └─vcsMetadata-1
│  ├─8.12.1
│  │  │  gc.properties
│  │  │
│  │  ├─checksums
│  │  │      checksums.lock
│  │  │
│  │  ├─executionHistory
│  │  │      executionHistory.bin
│  │  │      executionHistory.lock
│  │  │
│  │  ├─expanded
│  │  ├─fileChanges
│  │  │      last-build.bin
│  │  │
│  │  ├─fileHashes
│  │  │      fileHashes.bin
│  │  │      fileHashes.lock
│  │  │
│  │  └─vcsMetadata
│  ├─buildOutputCleanup
│  │      buildOutputCleanup.lock
│  │      cache.properties
│  │      outputFiles.bin
│  │
│  ├─checksums
│  │      checksums.lock
│  │      md5-checksums.bin
│  │      sha1-checksums.bin
│  │
│  └─vcs-1
│          gc.properties
│
├─app
│  │  build.gradle
│  │  my-release-key.jks
│  │
│  ├─bin
│  │  └─com
│  │      └─example
│  │          └─simpleapp
│  │                  MainActivity.class
│  │
│  ├─build
│  │  ├─generated
│  │  │  ├─ap_generated_sources
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─res
│  │  │  │  ├─pngs
│  │  │  │  │  └─debug
│  │  │  │  └─resValues
│  │  │  │      └─debug
│  │  │  └─source
│  │  │      └─buildConfig
│  │  │          └─debug
│  │  │              └─com
│  │  │                  └─example
│  │  │                      └─simpleapp
│  │  │                              BuildConfig.java
│  │  │
│  │  ├─intermediates
│  │  │  ├─aar_metadata_check
│  │  │  │  └─debug
│  │  │  ├─annotation_processor_list
│  │  │  │  └─debug
│  │  │  │          annotationProcessors.json
│  │  │  │
│  │  │  ├─app_metadata
│  │  │  │  └─debug
│  │  │  │          app-metadata.properties
│  │  │  │
│  │  │  ├─compatible_screen_manifest
│  │  │  │  └─debug
│  │  │  │          output-metadata.json
│  │  │  │
│  │  │  ├─compile_and_runtime_not_namespaced_r_class_jar
│  │  │  │  └─debug
│  │  │  │          R.jar
│  │  │  │
│  │  │  ├─compressed_assets
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─data_binding_layout_info_type_merge
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─desugar_graph
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  │          ├─currentProject
│  │  │  │          │  ├─dirs_bucket_0
│  │  │  │          │  │      graph.bin
│  │  │  │          │  │
│  │  │  │          │  ├─dirs_bucket_1
│  │  │  │          │  │      graph.bin
│  │  │  │          │  │
│  │  │  │          │  ├─dirs_bucket_2
│  │  │  │          │  │      graph.bin
│  │  │  │          │  │
│  │  │  │          │  ├─dirs_bucket_3
│  │  │  │          │  │      graph.bin
│  │  │  │          │  │
│  │  │  │          │  ├─jar_c74e1c0ced86e050bd2576dd01860040994d379f4892d40b3abdfafcbde9e752_bucket_0
│  │  │  │          │  │      graph.bin
│  │  │  │          │  │
│  │  │  │          │  ├─jar_c74e1c0ced86e050bd2576dd01860040994d379f4892d40b3abdfafcbde9e752_bucket_1
│  │  │  │          │  │      graph.bin
│  │  │  │          │  │
│  │  │  │          │  ├─jar_c74e1c0ced86e050bd2576dd01860040994d379f4892d40b3abdfafcbde9e752_bucket_2
│  │  │  │          │  │      graph.bin
│  │  │  │          │  │
│  │  │  │          │  └─jar_c74e1c0ced86e050bd2576dd01860040994d379f4892d40b3abdfafcbde9e752_bucket_3
│  │  │  │          │          graph.bin
│  │  │  │          │
│  │  │  │          ├─externalLibs
│  │  │  │          ├─mixedScopes
│  │  │  │          └─otherProjects
│  │  │  ├─dex
│  │  │  │  └─debug
│  │  │  │      ├─mergeExtDexDebug
│  │  │  │      │      classes.dex
│  │  │  │      │
│  │  │  │      ├─mergeLibDexDebug
│  │  │  │      │  ├─0
│  │  │  │      │  ├─1
│  │  │  │      │  ├─10
│  │  │  │      │  ├─11
│  │  │  │      │  ├─12
│  │  │  │      │  ├─13
│  │  │  │      │  ├─14
│  │  │  │      │  ├─15
│  │  │  │      │  ├─2
│  │  │  │      │  ├─3
│  │  │  │      │  ├─4
│  │  │  │      │  ├─5
│  │  │  │      │  ├─6
│  │  │  │      │  ├─7
│  │  │  │      │  ├─8
│  │  │  │      │  └─9
│  │  │  │      └─mergeProjectDexDebug
│  │  │  │          ├─0
│  │  │  │          │      classes.dex
│  │  │  │          │
│  │  │  │          ├─1
│  │  │  │          ├─10
│  │  │  │          ├─11
│  │  │  │          ├─12
│  │  │  │          ├─13
│  │  │  │          ├─14
│  │  │  │          │      classes.dex
│  │  │  │          │
│  │  │  │          ├─15
│  │  │  │          ├─2
│  │  │  │          ├─3
│  │  │  │          ├─4
│  │  │  │          ├─5
│  │  │  │          ├─6
│  │  │  │          ├─7
│  │  │  │          ├─8
│  │  │  │          └─9
│  │  │  ├─dex_archive_input_jar_hashes
│  │  │  │  └─debug
│  │  │  │          out
│  │  │  │
│  │  │  ├─dex_number_of_buckets_file
│  │  │  │  └─debug
│  │  │  │          out
│  │  │  │
│  │  │  ├─duplicate_classes_check
│  │  │  │  └─debug
│  │  │  ├─external_file_lib_dex_archives
│  │  │  │  └─debug
│  │  │  ├─external_libs_dex_archive
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─external_libs_dex_archive_with_artifact_transforms
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─incremental
│  │  │  │  ├─debug-mergeJavaRes
│  │  │  │  │  │  merge-state
│  │  │  │  │  │
│  │  │  │  │  └─zip-cache
│  │  │  │  │          048HcTWWEq1lulbmUyQznT37EsA=
│  │  │  │  │          1a_EIO9PiBosWsI065pOT3qf7Ds=
│  │  │  │  │          1hmxbp0IIpB68Da4s0EztcNOuOs=
│  │  │  │  │          1hruv_CVTc7rACzgrV_EbGRL8aQ=
│  │  │  │  │          1KCmdii_GxXEpMWe5Pq8kyWqzqQ=
│  │  │  │  │          4NE736MhQ0mtuWu+hfqUiTOu13c=
│  │  │  │  │          8WkG10fpk_rZSp2aLy7KzLtm3EE=
│  │  │  │  │          9QKNvWu_7YUZQ1fUM2miHNFtCTo=
│  │  │  │  │          AfMj8haKzuev025IN1KKjT1Eny4=
│  │  │  │  │          At5i9i+tmegiq7FS1ao+_fZl8po=
│  │  │  │  │          bFDA9U0WYHVLP0PcNrkWdkKfAa8=
│  │  │  │  │          Cs1Dq7KfqTKuzs6HZppCnIzUTVQ=
│  │  │  │  │          FGzaasxdJ2z7_VgPq4ccnamPIos=
│  │  │  │  │          GHo9yJJtlaUoeIi0nkX_AZF6irk=
│  │  │  │  │          iAc+h+gBLDWoxrpG_Z_imkBl0ik=
│  │  │  │  │          JxuFh8wfiBAhlhJYcl_D93HpKGc=
│  │  │  │  │          nD6OwsZWtEe__BX75guczfU7kVA=
│  │  │  │  │          Nxxtm6fSLnclQYIfAWaya6DesE8=
│  │  │  │  │          PpmdA2vpVPet09q69BUMqYmPTSg=
│  │  │  │  │          QA6qPov9_kseM0wYMzsoSBfFF_Y=
│  │  │  │  │          TZEcozvYarb4JDmXWSbtY3Xa4Hs=
│  │  │  │  │          VfQqCnVCBACk8ME8kewXddA18Ek=
│  │  │  │  │          WtmjFSON6pWnWiXaZ5xxdg1U5BM=
│  │  │  │  │          ww5alz54j37jxPyaSnMgBR_nLKw=
│  │  │  │  │          wZW2oupEq4nj4seQKhI3ytH5u7U=
│  │  │  │  │          XJxTyhc62GgI8H8jWC9SVYWr5ow=
│  │  │  │  │          zAXtx6HcKosMvikBJB+60jWYvK0=
│  │  │  │  │
│  │  │  │  ├─mergeDebugAssets
│  │  │  │  │      merger.xml
│  │  │  │  │
│  │  │  │  ├─mergeDebugJniLibFolders
│  │  │  │  │      merger.xml
│  │  │  │  │
│  │  │  │  ├─mergeDebugResources
│  │  │  │  │  │  compile-file-map.properties
│  │  │  │  │  │  merger.xml
│  │  │  │  │  │
│  │  │  │  │  ├─merged.dir
│  │  │  │  │  │  ├─values
│  │  │  │  │  │  │      values.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-af
│  │  │  │  │  │  │      values-af.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-am
│  │  │  │  │  │  │      values-am.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ar
│  │  │  │  │  │  │      values-ar.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-as
│  │  │  │  │  │  │      values-as.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-az
│  │  │  │  │  │  │      values-az.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-b+sr+Latn
│  │  │  │  │  │  │      values-b+sr+Latn.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-be
│  │  │  │  │  │  │      values-be.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-bg
│  │  │  │  │  │  │      values-bg.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-bn
│  │  │  │  │  │  │      values-bn.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-bs
│  │  │  │  │  │  │      values-bs.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ca
│  │  │  │  │  │  │      values-ca.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-cs
│  │  │  │  │  │  │      values-cs.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-da
│  │  │  │  │  │  │      values-da.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-de
│  │  │  │  │  │  │      values-de.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-el
│  │  │  │  │  │  │      values-el.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-en-rAU
│  │  │  │  │  │  │      values-en-rAU.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-en-rCA
│  │  │  │  │  │  │      values-en-rCA.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-en-rGB
│  │  │  │  │  │  │      values-en-rGB.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-en-rIN
│  │  │  │  │  │  │      values-en-rIN.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-en-rXC
│  │  │  │  │  │  │      values-en-rXC.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-es
│  │  │  │  │  │  │      values-es.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-es-rUS
│  │  │  │  │  │  │      values-es-rUS.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-et
│  │  │  │  │  │  │      values-et.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-eu
│  │  │  │  │  │  │      values-eu.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-fa
│  │  │  │  │  │  │      values-fa.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-fi
│  │  │  │  │  │  │      values-fi.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-fr
│  │  │  │  │  │  │      values-fr.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-fr-rCA
│  │  │  │  │  │  │      values-fr-rCA.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-gl
│  │  │  │  │  │  │      values-gl.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-gu
│  │  │  │  │  │  │      values-gu.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-h720dp-v13
│  │  │  │  │  │  │      values-h720dp-v13.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-hdpi-v4
│  │  │  │  │  │  │      values-hdpi-v4.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-hi
│  │  │  │  │  │  │      values-hi.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-hr
│  │  │  │  │  │  │      values-hr.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-hu
│  │  │  │  │  │  │      values-hu.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-hy
│  │  │  │  │  │  │      values-hy.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-in
│  │  │  │  │  │  │      values-in.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-is
│  │  │  │  │  │  │      values-is.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-it
│  │  │  │  │  │  │      values-it.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-iw
│  │  │  │  │  │  │      values-iw.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ja
│  │  │  │  │  │  │      values-ja.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ka
│  │  │  │  │  │  │      values-ka.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-kk
│  │  │  │  │  │  │      values-kk.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-km
│  │  │  │  │  │  │      values-km.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-kn
│  │  │  │  │  │  │      values-kn.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ko
│  │  │  │  │  │  │      values-ko.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ky
│  │  │  │  │  │  │      values-ky.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-land
│  │  │  │  │  │  │      values-land.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-large-v4
│  │  │  │  │  │  │      values-large-v4.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ldltr-v21
│  │  │  │  │  │  │      values-ldltr-v21.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-lo
│  │  │  │  │  │  │      values-lo.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-lt
│  │  │  │  │  │  │      values-lt.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-lv
│  │  │  │  │  │  │      values-lv.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-mk
│  │  │  │  │  │  │      values-mk.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ml
│  │  │  │  │  │  │      values-ml.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-mn
│  │  │  │  │  │  │      values-mn.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-mr
│  │  │  │  │  │  │      values-mr.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ms
│  │  │  │  │  │  │      values-ms.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-my
│  │  │  │  │  │  │      values-my.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-nb
│  │  │  │  │  │  │      values-nb.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ne
│  │  │  │  │  │  │      values-ne.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-night-v8
│  │  │  │  │  │  │      values-night-v8.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-nl
│  │  │  │  │  │  │      values-nl.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-or
│  │  │  │  │  │  │      values-or.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-pa
│  │  │  │  │  │  │      values-pa.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-pl
│  │  │  │  │  │  │      values-pl.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-port
│  │  │  │  │  │  │      values-port.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-pt
│  │  │  │  │  │  │      values-pt.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-pt-rBR
│  │  │  │  │  │  │      values-pt-rBR.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-pt-rPT
│  │  │  │  │  │  │      values-pt-rPT.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ro
│  │  │  │  │  │  │      values-ro.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ru
│  │  │  │  │  │  │      values-ru.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-si
│  │  │  │  │  │  │      values-si.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-sk
│  │  │  │  │  │  │      values-sk.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-sl
│  │  │  │  │  │  │      values-sl.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-sq
│  │  │  │  │  │  │      values-sq.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-sr
│  │  │  │  │  │  │      values-sr.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-sv
│  │  │  │  │  │  │      values-sv.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-sw
│  │  │  │  │  │  │      values-sw.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-sw600dp-v13
│  │  │  │  │  │  │      values-sw600dp-v13.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ta
│  │  │  │  │  │  │      values-ta.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-te
│  │  │  │  │  │  │      values-te.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-th
│  │  │  │  │  │  │      values-th.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-tl
│  │  │  │  │  │  │      values-tl.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-tr
│  │  │  │  │  │  │      values-tr.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-uk
│  │  │  │  │  │  │      values-uk.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-ur
│  │  │  │  │  │  │      values-ur.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-uz
│  │  │  │  │  │  │      values-uz.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v16
│  │  │  │  │  │  │      values-v16.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v17
│  │  │  │  │  │  │      values-v17.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v18
│  │  │  │  │  │  │      values-v18.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v21
│  │  │  │  │  │  │      values-v21.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v22
│  │  │  │  │  │  │      values-v22.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v23
│  │  │  │  │  │  │      values-v23.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v24
│  │  │  │  │  │  │      values-v24.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v25
│  │  │  │  │  │  │      values-v25.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v26
│  │  │  │  │  │  │      values-v26.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-v28
│  │  │  │  │  │  │      values-v28.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-vi
│  │  │  │  │  │  │      values-vi.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-watch-v20
│  │  │  │  │  │  │      values-watch-v20.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-watch-v21
│  │  │  │  │  │  │      values-watch-v21.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-xlarge-v4
│  │  │  │  │  │  │      values-xlarge-v4.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-zh-rCN
│  │  │  │  │  │  │      values-zh-rCN.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-zh-rHK
│  │  │  │  │  │  │      values-zh-rHK.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  ├─values-zh-rTW
│  │  │  │  │  │  │      values-zh-rTW.xml
│  │  │  │  │  │  │
│  │  │  │  │  │  └─values-zu
│  │  │  │  │  │          values-zu.xml
│  │  │  │  │  │
│  │  │  │  │  └─stripped.dir
│  │  │  │  ├─mergeDebugShaders
│  │  │  │  │      merger.xml
│  │  │  │  │
│  │  │  │  ├─packageDebug
│  │  │  │  │  └─tmp
│  │  │  │  │      └─debug
│  │  │  │  │          │  dex-renamer-state.txt
│  │  │  │  │          │
│  │  │  │  │          └─zip-cache
│  │  │  │  │                  androidResources
│  │  │  │  │                  javaResources0
│  │  │  │  │
│  │  │  │  └─processDebugResources
│  │  │  ├─javac
│  │  │  │  └─debug
│  │  │  │      └─classes
│  │  │  │          └─com
│  │  │  │              └─example
│  │  │  │                  └─simpleapp
│  │  │  │                          BuildConfig.class
│  │  │  │                          MainActivity.class
│  │  │  │
│  │  │  ├─manifest_merge_blame_file
│  │  │  │  └─debug
│  │  │  │          manifest-merger-blame-debug-report.txt
│  │  │  │
│  │  │  ├─merged_assets
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─merged_java_res
│  │  │  │  └─debug
│  │  │  │          base.jar
│  │  │  │
│  │  │  ├─merged_jni_libs
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─merged_manifest
│  │  │  │  └─debug
│  │  │  │          AndroidManifest.xml
│  │  │  │
│  │  │  ├─merged_manifests
│  │  │  │  └─debug
│  │  │  │          AndroidManifest.xml
│  │  │  │          output-metadata.json
│  │  │  │
│  │  │  ├─merged_res
│  │  │  │  └─debug
│  │  │  │          values-af_values-af.arsc.flat
│  │  │  │          values-am_values-am.arsc.flat
│  │  │  │          values-ar_values-ar.arsc.flat
│  │  │  │          values-as_values-as.arsc.flat
│  │  │  │          values-az_values-az.arsc.flat
│  │  │  │          values-b+sr+Latn_values-b+sr+Latn.arsc.flat
│  │  │  │          values-be_values-be.arsc.flat
│  │  │  │          values-bg_values-bg.arsc.flat
│  │  │  │          values-bn_values-bn.arsc.flat
│  │  │  │          values-bs_values-bs.arsc.flat
│  │  │  │          values-ca_values-ca.arsc.flat
│  │  │  │          values-cs_values-cs.arsc.flat
│  │  │  │          values-da_values-da.arsc.flat
│  │  │  │          values-de_values-de.arsc.flat
│  │  │  │          values-el_values-el.arsc.flat
│  │  │  │          values-en-rAU_values-en-rAU.arsc.flat
│  │  │  │          values-en-rCA_values-en-rCA.arsc.flat
│  │  │  │          values-en-rGB_values-en-rGB.arsc.flat
│  │  │  │          values-en-rIN_values-en-rIN.arsc.flat
│  │  │  │          values-en-rXC_values-en-rXC.arsc.flat
│  │  │  │          values-es-rUS_values-es-rUS.arsc.flat
│  │  │  │          values-es_values-es.arsc.flat
│  │  │  │          values-et_values-et.arsc.flat
│  │  │  │          values-eu_values-eu.arsc.flat
│  │  │  │          values-fa_values-fa.arsc.flat
│  │  │  │          values-fi_values-fi.arsc.flat
│  │  │  │          values-fr-rCA_values-fr-rCA.arsc.flat
│  │  │  │          values-fr_values-fr.arsc.flat
│  │  │  │          values-gl_values-gl.arsc.flat
│  │  │  │          values-gu_values-gu.arsc.flat
│  │  │  │          values-h720dp-v13_values-h720dp-v13.arsc.flat
│  │  │  │          values-hdpi-v4_values-hdpi-v4.arsc.flat
│  │  │  │          values-hi_values-hi.arsc.flat
│  │  │  │          values-hr_values-hr.arsc.flat
│  │  │  │          values-hu_values-hu.arsc.flat
│  │  │  │          values-hy_values-hy.arsc.flat
│  │  │  │          values-in_values-in.arsc.flat
│  │  │  │          values-is_values-is.arsc.flat
│  │  │  │          values-it_values-it.arsc.flat
│  │  │  │          values-iw_values-iw.arsc.flat
│  │  │  │          values-ja_values-ja.arsc.flat
│  │  │  │          values-ka_values-ka.arsc.flat
│  │  │  │          values-kk_values-kk.arsc.flat
│  │  │  │          values-km_values-km.arsc.flat
│  │  │  │          values-kn_values-kn.arsc.flat
│  │  │  │          values-ko_values-ko.arsc.flat
│  │  │  │          values-ky_values-ky.arsc.flat
│  │  │  │          values-land_values-land.arsc.flat
│  │  │  │          values-large-v4_values-large-v4.arsc.flat
│  │  │  │          values-ldltr-v21_values-ldltr-v21.arsc.flat
│  │  │  │          values-lo_values-lo.arsc.flat
│  │  │  │          values-lt_values-lt.arsc.flat
│  │  │  │          values-lv_values-lv.arsc.flat
│  │  │  │          values-mk_values-mk.arsc.flat
│  │  │  │          values-ml_values-ml.arsc.flat
│  │  │  │          values-mn_values-mn.arsc.flat
│  │  │  │          values-mr_values-mr.arsc.flat
│  │  │  │          values-ms_values-ms.arsc.flat
│  │  │  │          values-my_values-my.arsc.flat
│  │  │  │          values-nb_values-nb.arsc.flat
│  │  │  │          values-ne_values-ne.arsc.flat
│  │  │  │          values-night-v8_values-night-v8.arsc.flat
│  │  │  │          values-nl_values-nl.arsc.flat
│  │  │  │          values-or_values-or.arsc.flat
│  │  │  │          values-pa_values-pa.arsc.flat
│  │  │  │          values-pl_values-pl.arsc.flat
│  │  │  │          values-port_values-port.arsc.flat
│  │  │  │          values-pt-rBR_values-pt-rBR.arsc.flat
│  │  │  │          values-pt-rPT_values-pt-rPT.arsc.flat
│  │  │  │          values-pt_values-pt.arsc.flat
│  │  │  │          values-ro_values-ro.arsc.flat
│  │  │  │          values-ru_values-ru.arsc.flat
│  │  │  │          values-si_values-si.arsc.flat
│  │  │  │          values-sk_values-sk.arsc.flat
│  │  │  │          values-sl_values-sl.arsc.flat
│  │  │  │          values-sq_values-sq.arsc.flat
│  │  │  │          values-sr_values-sr.arsc.flat
│  │  │  │          values-sv_values-sv.arsc.flat
│  │  │  │          values-sw600dp-v13_values-sw600dp-v13.arsc.flat
│  │  │  │          values-sw_values-sw.arsc.flat
│  │  │  │          values-ta_values-ta.arsc.flat
│  │  │  │          values-te_values-te.arsc.flat
│  │  │  │          values-th_values-th.arsc.flat
│  │  │  │          values-tl_values-tl.arsc.flat
│  │  │  │          values-tr_values-tr.arsc.flat
│  │  │  │          values-uk_values-uk.arsc.flat
│  │  │  │          values-ur_values-ur.arsc.flat
│  │  │  │          values-uz_values-uz.arsc.flat
│  │  │  │          values-v16_values-v16.arsc.flat
│  │  │  │          values-v17_values-v17.arsc.flat
│  │  │  │          values-v18_values-v18.arsc.flat
│  │  │  │          values-v21_values-v21.arsc.flat
│  │  │  │          values-v22_values-v22.arsc.flat
│  │  │  │          values-v23_values-v23.arsc.flat
│  │  │  │          values-v24_values-v24.arsc.flat
│  │  │  │          values-v25_values-v25.arsc.flat
│  │  │  │          values-v26_values-v26.arsc.flat
│  │  │  │          values-v28_values-v28.arsc.flat
│  │  │  │          values-vi_values-vi.arsc.flat
│  │  │  │          values-watch-v20_values-watch-v20.arsc.flat
│  │  │  │          values-watch-v21_values-watch-v21.arsc.flat
│  │  │  │          values-xlarge-v4_values-xlarge-v4.arsc.flat
│  │  │  │          values-zh-rCN_values-zh-rCN.arsc.flat
│  │  │  │          values-zh-rHK_values-zh-rHK.arsc.flat
│  │  │  │          values-zh-rTW_values-zh-rTW.arsc.flat
│  │  │  │          values-zu_values-zu.arsc.flat
│  │  │  │          values_values.arsc.flat
│  │  │  │
│  │  │  ├─merged_res_blame_folder
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  │          └─multi-v2
│  │  │  │                  debug.json
│  │  │  │                  values-af.json
│  │  │  │                  values-am.json
│  │  │  │                  values-ar.json
│  │  │  │                  values-as.json
│  │  │  │                  values-az.json
│  │  │  │                  values-b+sr+Latn.json
│  │  │  │                  values-be.json
│  │  │  │                  values-bg.json
│  │  │  │                  values-bn.json
│  │  │  │                  values-bs.json
│  │  │  │                  values-ca.json
│  │  │  │                  values-cs.json
│  │  │  │                  values-da.json
│  │  │  │                  values-de.json
│  │  │  │                  values-el.json
│  │  │  │                  values-en-rAU.json
│  │  │  │                  values-en-rCA.json
│  │  │  │                  values-en-rGB.json
│  │  │  │                  values-en-rIN.json
│  │  │  │                  values-en-rXC.json
│  │  │  │                  values-es-rUS.json
│  │  │  │                  values-es.json
│  │  │  │                  values-et.json
│  │  │  │                  values-eu.json
│  │  │  │                  values-fa.json
│  │  │  │                  values-fi.json
│  │  │  │                  values-fr-rCA.json
│  │  │  │                  values-fr.json
│  │  │  │                  values-gl.json
│  │  │  │                  values-gu.json
│  │  │  │                  values-h720dp-v13.json
│  │  │  │                  values-hdpi-v4.json
│  │  │  │                  values-hi.json
│  │  │  │                  values-hr.json
│  │  │  │                  values-hu.json
│  │  │  │                  values-hy.json
│  │  │  │                  values-in.json
│  │  │  │                  values-is.json
│  │  │  │                  values-it.json
│  │  │  │                  values-iw.json
│  │  │  │                  values-ja.json
│  │  │  │                  values-ka.json
│  │  │  │                  values-kk.json
│  │  │  │                  values-km.json
│  │  │  │                  values-kn.json
│  │  │  │                  values-ko.json
│  │  │  │                  values-ky.json
│  │  │  │                  values-land.json
│  │  │  │                  values-large-v4.json
│  │  │  │                  values-ldltr-v21.json
│  │  │  │                  values-lo.json
│  │  │  │                  values-lt.json
│  │  │  │                  values-lv.json
│  │  │  │                  values-mk.json
│  │  │  │                  values-ml.json
│  │  │  │                  values-mn.json
│  │  │  │                  values-mr.json
│  │  │  │                  values-ms.json
│  │  │  │                  values-my.json
│  │  │  │                  values-nb.json
│  │  │  │                  values-ne.json
│  │  │  │                  values-night-v8.json
│  │  │  │                  values-nl.json
│  │  │  │                  values-or.json
│  │  │  │                  values-pa.json
│  │  │  │                  values-pl.json
│  │  │  │                  values-port.json
│  │  │  │                  values-pt-rBR.json
│  │  │  │                  values-pt-rPT.json
│  │  │  │                  values-pt.json
│  │  │  │                  values-ro.json
│  │  │  │                  values-ru.json
│  │  │  │                  values-si.json
│  │  │  │                  values-sk.json
│  │  │  │                  values-sl.json
│  │  │  │                  values-sq.json
│  │  │  │                  values-sr.json
│  │  │  │                  values-sv.json
│  │  │  │                  values-sw.json
│  │  │  │                  values-sw600dp-v13.json
│  │  │  │                  values-ta.json
│  │  │  │                  values-te.json
│  │  │  │                  values-th.json
│  │  │  │                  values-tl.json
│  │  │  │                  values-tr.json
│  │  │  │                  values-uk.json
│  │  │  │                  values-ur.json
│  │  │  │                  values-uz.json
│  │  │  │                  values-v16.json
│  │  │  │                  values-v17.json
│  │  │  │                  values-v18.json
│  │  │  │                  values-v21.json
│  │  │  │                  values-v22.json
│  │  │  │                  values-v23.json
│  │  │  │                  values-v24.json
│  │  │  │                  values-v25.json
│  │  │  │                  values-v26.json
│  │  │  │                  values-v28.json
│  │  │  │                  values-vi.json
│  │  │  │                  values-watch-v20.json
│  │  │  │                  values-watch-v21.json
│  │  │  │                  values-xlarge-v4.json
│  │  │  │                  values-zh-rCN.json
│  │  │  │                  values-zh-rHK.json
│  │  │  │                  values-zh-rTW.json
│  │  │  │                  values-zu.json
│  │  │  │                  values.json
│  │  │  │
│  │  │  ├─merged_shaders
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─mixed_scope_dex_archive
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─navigation_json
│  │  │  │  └─debug
│  │  │  │          navigation.json
│  │  │  │
│  │  │  ├─packaged_manifests
│  │  │  │  └─debug
│  │  │  │          AndroidManifest.xml
│  │  │  │          output-metadata.json
│  │  │  │
│  │  │  ├─processed_res
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  │              output-metadata.json
│  │  │  │              resources-debug.ap_
│  │  │  │
│  │  │  ├─project_dex_archive
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  │          │  c33e8c747d74d1a84f419785e60af63897d9343fd80c67c5b4444946ca3b6c29_0.jar
│  │  │  │          │  c33e8c747d74d1a84f419785e60af63897d9343fd80c67c5b4444946ca3b6c29_1.jar
│  │  │  │          │  c33e8c747d74d1a84f419785e60af63897d9343fd80c67c5b4444946ca3b6c29_2.jar
│  │  │  │          │  c33e8c747d74d1a84f419785e60af63897d9343fd80c67c5b4444946ca3b6c29_3.jar
│  │  │  │          │
│  │  │  │          └─com
│  │  │  │              └─example
│  │  │  │                  └─simpleapp
│  │  │  │                          BuildConfig.dex
│  │  │  │                          MainActivity.dex
│  │  │  │
│  │  │  ├─res
│  │  │  │  └─merged
│  │  │  │      └─debug
│  │  │  ├─runtime_symbol_list
│  │  │  │  └─debug
│  │  │  │          R.txt
│  │  │  │
│  │  │  ├─signing_config_versions
│  │  │  │  └─debug
│  │  │  │          signing-config-versions.json
│  │  │  │
│  │  │  ├─sub_project_dex_archive
│  │  │  │  └─debug
│  │  │  │      └─out
│  │  │  ├─symbol_list_with_package_name
│  │  │  │  └─debug
│  │  │  │          package-aware-r.txt
│  │  │  │
│  │  │  └─validate_signing_config
│  │  │      └─debug
│  │  ├─outputs
│  │  │  ├─apk
│  │  │  │  └─debug
│  │  │  │          app-debug.apk
│  │  │  │          output-metadata.json
│  │  │  │
│  │  │  └─logs
│  │  │          manifest-merger-debug-report.txt
│  │  │
│  │  └─tmp
│  │      └─compileDebugJavaWithJavac
│  │              source-classes-mapping.txt
│  │
│  └─src
│      └─main
│          │  AndroidManifest.xml
│          │
│          ├─java
│          │  └─com
│          │      └─example
│          │          └─simpleapp
│          │                  MainActivity.java
│          │
│          └─res
│              ├─layout
│              └─values
├─build
│  └─reports
│      └─problems
│              problems-report.html
│
├─gradle
│  └─wrapper
│          gradle-wrapper.jar
│          gradle-wrapper.properties
│
└─out
        app.signed.apk
        app.signed.apk.idsig
        app.unsigned.apk
        classes.dex

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2294563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

车型检测7种YOLOV8

车型检测7种YOLOV8,采用YOLOV8NANO训练,得到PT模型,转换成ONNX,然后OPENCV的DNN调用,支持C,python,android开发 车型检测7种YOLOV8

IDEA 中集成 Maven,配置环境、创建以及导入项目

目录 在 IntelliJ IDEA 中集成 Maven 并配置环境 1. 打开 IDEA 设置 2. 定位 Maven 配置选项 3. 配置 Maven 路径 4. 应用配置 创建 Maven 项目 1. 新建项目 2. 选择项目类型 3. 配置项目信息 4. 确认 Maven 设置 5. 完成项目创建 导入 Maven 项目 1. 打开导入窗口…

react关于手搓antd pro面包屑的经验(写的不好请见谅)

我们先上代码,代码里面都有注释,我是单独写了一个组件,方便使用,在其他页面引入就行了 还使用了官方的Breadcrumb组件 import React, { useEffect, useState } from react; import { Breadcrumb, Button } from antd; import { …

[含文档+PPT+源码等]精品大数据项目-Django基于大数据实现的心血管疾病分析系统

大数据项目-Django基于大数据实现的心血管疾病分析系统背景可以从以下几个方面进行阐述: 一、项目背景与意义 1. 心血管疾病现状 心血管疾病是当前全球面临的主要健康挑战之一,其高发病率、高致残率和高死亡率严重威胁着人类的生命健康。根据权威机构…

【Rust自学】19.5. 高级类型

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 19.5.1.使用newtype模式实现类型安全和抽象 在 19.2. 高级trait 中(具体来说是…

113,【5】 功防世界 web unseping

进入靶场 代码审计 <?php // 高亮显示当前 PHP 文件的源代码&#xff0c;方便开发者查看代码结构和内容 highlight_file(__FILE__);// 定义一个名为 ease 的类 class ease {// 私有属性 $method&#xff0c;用于存储要调用的方法名private $method;// 私有属性 $args&…

leetCode刷题-图、回溯相关

岛屿数量 class Solution { private:int mi;int mj; public:int numIslands(vector<vector<char>>& grid) {mi grid.size() - 1; // i的范围 0~mimj grid[0].size() - 1; // j的范围 0~mjint landnum 0;bool sea false;do {pair<int, int> res …

Windows编程:下载与安装 Visual Studio 2010

本节前言 在写作本节的时候&#xff0c;本来呢&#xff0c;我正在写的专栏&#xff0c;是 MFC 专栏。而 VS2010 和 VS2019&#xff0c;正是 MFC 学习与开发中&#xff0c;可以使用的两款软件。然而呢&#xff0c;如果你去学习 Windows API 知识的话&#xff0c;那么&#xff0…

OpenEuler学习笔记(十八):搭建企业云盘服务

要在 OpenEuler 上搭建企业云盘&#xff0c;可借助一些开源软件来实现&#xff0c;以下以 Nextcloud 为例详细介绍搭建步骤。Nextcloud 是一款功能丰富的开源云存储解决方案&#xff0c;支持文件共享、同步、协作等多种功能。 1. 系统环境准备 确保 OpenEuler 系统已更新到最…

什么是三层交换技术?与二层有什么区别?

什么是三层交换技术&#xff1f;让你的网络飞起来&#xff01; 一. 什么是三层交换技术&#xff1f;二. 工作原理三. 优点四. 应用场景五. 总结 前言 点个免费的赞和关注&#xff0c;有错误的地方请指出&#xff0c;看个人主页有惊喜。 作者&#xff1a;神的孩子都在歌唱 大家好…

Ollama+deepseek+Docker+Open WebUI实现与AI聊天

1、下载并安装Ollama 官方网址&#xff1a;Ollama 安装好后&#xff0c;在命令行输入&#xff0c; ollama --version 返回以下信息&#xff0c;则表明安装成功&#xff0c; 2、 下载AI大模型 这里以deepseek-r1:1.5b模型为例&#xff0c; 在命令行中&#xff0c;执行&…

Linux生成自签证书【Nginx】

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

网络安全 | 加密技术揭秘:保护数据隐私的核心

网络安全 | 加密技术揭秘&#xff1a;保护数据隐私的核心 一、前言二、对称加密技术2.1 原理2.2 优点2.3 缺点2.4 应用场景 三、非对称加密技术3.1 原理3.2 优点3.3 缺点3.4 应用场景 四、哈希函数4.1 原理4.2 优点4.3 缺点4.4 应用场景 五、数字签名5.1 原理5.2 优点5.3 缺点5…

使用服务器部署DeepSeek-R1模型【详细版】

文章目录 引言deepseek-r1IDE或者终端工具算力平台体验deepseek-r1模型总结 引言 在现代的机器学习和深度学习应用中&#xff0c;模型部署和服务化是每个开发者面临的重要任务。无论是用于智能推荐、自然语言处理还是图像识别&#xff0c;如何高效、稳定地将深度学习模型部署到…

DirectX11 With Windows SDK--02 顶点/像素着色器的创建、顶点缓冲区

Direct3D 11 总结 —— 4 绘制三角形_direct绘制三角形-CSDN博客 DirectX11 With Windows SDK--02 顶点/像素着色器的创建、顶点缓冲区 - X_Jun - 博客园 练习题 粗体字为自定义题目 尝试交换三角形第一个和第三个顶点的数据&#xff0c;屏幕将显示什么&#xff1f;为什么&…

第二次连接k8s平台注意事项

第二次重新打开集群平台 1.三台机子要在VMware打开 2.MobaBXterm连接Session 3.三个机子docker重启 systemctl restart docker4.主节点进行平台链接 docker pull kubeoperator/kubepi-server[rootnode1 home]# docker pull kubeoperator/kubepi-server [rootnode1 home]# # 运…

Mybatis篇

1&#xff0c;什么是Mybatis &#xff08; 1 &#xff09;Mybatis 是一个半 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了 JDBC&#xff0c;开发时只需要关注 SQL 语句本身&#xff0c;不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁…

三维粒子滤波(Particle Filter)MATLAB例程,估计三维空间中匀速运动目标的位置(x, y, z),提供下载链接

三维粒子滤波(Particle Filter)MATLAB例程,估计三维空间中匀速运动目标的位置(x, y, z) 文章目录 介绍功能运行结果代码介绍 本 MATLAB 代码实现了三维粒子滤波( P a r t i c l e F i l t e

设计模式Python版 享元模式

文章目录 前言一、享元模式二、享元模式示例 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&#xff1a;关注类和对象之间的组合&…

从0开始,来看看怎么去linux排查Java程序故障

一&#xff0c;前提准备 最基本前提&#xff1a;你需要有liunx环境&#xff0c;如果没有请参考其它文献在自己得到local建立一个虚拟机去进行测试。 有了虚拟机之后&#xff0c;你还需要安装jdk和配置环境变量 1. 安装JDK&#xff08;以OpenJDK 17为例&#xff09; 下载JDK…