Android.bp文件说明

这篇具有很好参考价值的文章主要介绍了Android.bp文件说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、说明

Android.bp是安卓系统,Soong构建系统使用的配置文件。具体描述可以查看官方描述;

关于Soong也可以看下这篇网上的文章;

这里关于Android.bp文件的说明谷歌官方给出参考,仅用于快速查看,没有进行翻译,详细可以查看对应的参考文档;

二、Android.bp文件说明

1. WallpaperPicker2的Android.bp文件

如下为android-13.0.0_r3中packages/apps/WallpaperPicker2/Android.bp的文件内容

//
// Build rule for WallpaperPicker2 dependencies lib.
//
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

android_library {
    name: "wallpaper-common-deps",

    static_libs: [
        "androidx.appcompat_appcompat",
        "androidx.cardview_cardview",
        "androidx-constraintlayout_constraintlayout",
        "androidx.exifinterface_exifinterface",
        "androidx.lifecycle_lifecycle-runtime-ktx",
        "androidx.recyclerview_recyclerview",
        "androidx.slice_slice-view",
        "androidx.viewpager2_viewpager2",
        "com.google.android.material_material",
        "glide-prebuilt",
        "glide-gifdecoder-prebuilt",
        "glide-disklrucache-prebuilt",
        "kotlinx-coroutines-android",
        "kotlinx-coroutines-core",
        "libbackup",
        "SettingsLibCollapsingToolbarBaseActivity",
        "subsampling-scale-image-view",
        "SystemUISharedLib",
        "volley",
        "SettingsLibActivityEmbedding",
    ],

    resource_dirs: ["res"],

    optimize: {
        enabled: false,
    },

    kotlincflags: ["-Xjvm-default=enable"],

    sdk_version: "current",

    manifest: "AndroidManifest-empty.xml",

    visibility: [
        ":__subpackages__",
        "//packages/apps/ThemePicker",
        "//vendor:__subpackages__",
    ],
}

filegroup {
    name: "WallpaperPicker2_srcs",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],
}

genrule {
   name: "WallpaperPicker2_res",
   tools: ["soong_zip"],
   srcs: [
       "res/**/*"
   ],
   out: ["wallpaperpicker2_res.zip"],
   cmd: "INPUTS=($(in)) && "
       + "RES_DIR=$$(dirname $$(dirname $${INPUTS[0]})) && "
       + "$(location soong_zip) -o $(out) -C $$RES_DIR -D $$RES_DIR"
}

filegroup {
    name: "WallpaperPicker2_Manifest",
    srcs: [
        "AndroidManifest.xml",
    ],
}

java_defaults {
    name: "WallpaperPicker2_defaults",

    static_libs: [
        "renderscript_toolkit",
        "wallpaper-common-deps",
    ],

    jni_libs: [
        "librenderscript-toolkit",
    ],

    srcs: [
        ":WallpaperPicker2_srcs",
        "src_override/**/*.java",
        "src_override/**/*.kt",
    ],
    resource_zips: [":WallpaperPicker2_res"],

    certificate: "",

    optimize: {
        enabled: false,
    },

    kotlincflags: ["-Xjvm-default=enable"],
    privileged: true,
    system_ext_specific: true,

    use_embedded_native_libs: true,

    manifest: "AndroidManifest.xml",
}

//
// Build app code.
//
android_app {
    name: "WallpaperPicker2",

    defaults: ["WallpaperPicker2_defaults"],

    platform_apis: true,
}

按照上面文件的描述,android_app表示会生成一个apk文件;

2. 各配置项说明

如下为Android.bp文件的一些配置项:

name, srcs, exclude_srcs, defaults, aapt_include_all_resources, aaptflags, additional_certificates, additional_manifests, aidl, apex_available, arch, asset_dirs, bazel_module, certificate, common_srcs, compile_dex, compile_multilib, debug_ramdisk, device_specific, dex_preopt, dist, dists, dont_merge_manifests, dxflags, embed_notices, enabled, enforce_default_target_sdk_version, enforce_uses_libs, errorprone, exclude_java_resource_dirs, exclude_java_resources, exclude_kotlinc_generated_files, exclude_static_libs, exclude_uses_libs, export_package_resources, exported_plugins, generated_srcjars, hidden_api, hiddenapi_additional_annotations, host_required, hostdex, include_srcs, init_rc, installable, jacoco, jarjar_rules, java_resource_dirs, java_resources, java_version, javac_shard_size, javacflags, jni_libs, jni_uses_platform_apis, jni_uses_sdk_apis, kotlincflags, libs, licenses, lineage, lint, logging_parent, main_dex_rules, manifest, max_sdk_version, min_sdk_version, multilib, native_bridge_supported, openjdk9, optimize, optional_uses_libs, overrides, owner, package_name, package_splits, patch_module, permitted_packages, platform_apis, plugins, privapp_allowlist, privileged, product_specific, product_variables.always_use_prebuilt_sdks, product_variables.arc, product_variables.build_from_text_stub, product_variables.debuggable, product_variables.eng, product_variables.malloc_not_svelte, product_variables.native_coverage, product_variables.pdk, product_variables.platform_sdk_version_or_codename, product_variables.unbundled_build, proprietary, proto, provides_uses_lib, ramdisk, recovery, rename_resources_package, replace_max_sdk_version_placeholder, required, resource_dirs, resource_zips, rotationMinSdkVersion, sdk_version, services, soc_specific, static_kotlin_stdlib, static_libs, stem, stl, system_ext_specific, system_modules, target, target.android, target.host, target.hostdex, target_required, target_sdk_version, uncompress_dex, updatable, use_embedded_dex, use_embedded_native_libs, use_tools_jar, uses_libs, v4_signature, vendor, vendor_ramdisk, vintf_fragments, visibility

如下为各个配置项的说明:

name string, The name of the module. Must be unique across all modules.
srcs list of string, list of source files used to compile the Java module. May be .java, .kt, .logtags, .proto, or .aidl files.
exclude_srcs list of string, list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
defaults list of string
aapt_include_all_resources bool, include all resource configurations, not just the product-configured ones.
aaptflags list of string, flags passed to aapt when creating the apk
additional_certificates list of string, Names of extra android_app_certificate modules to sign the apk with in the form “:module”.
additional_manifests list of string, paths to additional manifest files to merge with main manifest.
⊕aidl
apex_available list of string, Availability of this module in APEXes. Only the listed APEXes can contain this module. If the module has stubs then other APEXes and the platform may access it through them (subject to visibility). “//apex_available:anyapex” is a pseudo APEX name that matches to any APEX. “//apex_available:platform” refers to non-APEX partitions like “system.img”. “com.android.gki.*” matches any APEX module name with the prefix “com.android.gki.”. Default is [“//apex_available:platform”].
arch interface
asset_dirs list of string, list of directories relative to the Blueprints file containing assets. Defaults to [“assets”] if a directory called assets exists. Set to [] to disable the default.
⊕bazel_module BazelModuleProperties
certificate string, The name of a certificate in the default certificate directory, blank to use the default product certificate, or an android_app_certificate module name in the form “:module”.
common_srcs list of string, list Kotlin of source files containing Kotlin code that should be treated as common code in a codebase that supports Kotlin multiplatform. See https://kotlinlang.org/docs/reference/multiplatform.html. May be only be .kt files.
compile_dex bool, If set to true, compile dex regardless of installable. Defaults to false.
compile_multilib string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values are “32” (compile for 32-bit only), “64” (compile for 64-bit only), “both” (compile for both architectures), or “first” (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit platform).
debug_ramdisk bool, Whether this module is installed to debug ramdisk
device_specific bool, whether this module is specific to a device, not only for SoC, but also for off-chip peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist). This implies soc_specific:true.
⊕dex_preopt
⊕dist Dist
dists list of Dist, a list of configurations to distribute output files from this module to the distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
dont_merge_manifests bool, do not include AndroidManifest from dependent libraries
dxflags list of string, list of module-specific flags that will be used for dex compiles
embed_notices bool, If set, find and merge all NOTICE files that this module and its dependencies have and store it in the APK as an asset.
enabled bool, emit build rules for this module Disabling a module should only be done for those modules that cannot be built in the current environment. Modules that can build in the current environment but are not usually required (e.g. superceded by a prebuilt) should not be disabled as that will prevent them from being built by the checkbuild target and so prevent early detection of changes that have broken those modules.
enforce_default_target_sdk_version bool, It can be set to test the behaviour of default target sdk version. Only required when updatable: false. It is an error if updatable: true and this is false.
enforce_uses_libs bool, If true, the list of uses_libs and optional_uses_libs modules must match the AndroidManifest.xml file. Defaults to true if either uses_libs or optional_uses_libs is set. Will unconditionally default to true in the future.
⊕errorprone
exclude_java_resource_dirs list of string, list of directories that should be excluded from java_resource_dirs
exclude_java_resources list of string, list of files that should be excluded from java_resources and java_resource_dirs
exclude_kotlinc_generated_files bool, Exclude kotlinc generate files: *.kotlin_module, *.kotlin_builtins. Defaults to false.
exclude_static_libs list of string, list of java libraries that should not be used to build this module
exclude_uses_libs list of string, A list of shared library names to exclude from the classpath of the APK. Adding a library here will prevent it from being used when precompiling the APK and prevent it from being implicitly added to the APK’s manifest’s elements. Care must be taken when using this as it could result in runtime errors if the APK actually uses classes provided by the library and which are not provided in any other way. This is primarily intended for use by various CTS tests that check the runtime handling of the android.test.base shared library (and related libraries) but which depend on some common libraries that depend on the android.test.base library. Without this those tests will end up with a in their manifest which would either render the tests worthless (as they would be testing the wrong behavior), or would break the test altogether by providing access to classes that the tests were not expecting. Those tests provide the android.test.base statically and use jarjar to rename them so they do not collide with the classes provided by the android.test.base library.
export_package_resources bool, If set, create package-export.apk, which other packages can use to get PRODUCT-agnostic resource data like IDs and type definitions.
exported_plugins list of string, List of modules to export to libraries that directly depend on this library as annotation processors. Note that if the plugins set generates_api: true this will disable the turbine optimization on modules that depend on this module, which will reduce parallelism and cause more recompilation.
generated_srcjars list of *ast.SelectorExpr, Additional srcJars tacked in by GeneratedJavaLibraryModule
⊕hidden_api
hiddenapi_additional_annotations list of string, A list of java_library instances that provide additional hiddenapi annotations for the library.
host_required list of string, names of other modules to install on host if this module is installed
hostdex bool, If true, export a copy of the module as a -hostdex module for host testing.
include_srcs bool, If set to true, include sources used to compile the module in to the final jar
init_rc list of string, init.rc files to be installed if this module is installed
installable bool, If set to true, allow this module to be dexed and installed on devices. Has no effect on host modules, which are always considered installable. Default: true
⊕jacoco
jarjar_rules string, if not blank, run jarjar using the specified rules file
java_resource_dirs list of string, list of directories containing Java resources
java_resources list of string, list of files to use as Java resources
java_version string, If not blank, set the java version passed to javac as -source and -target
javac_shard_size int64, The number of Java source entries each Javac instance can process
javacflags list of string, list of module-specific flags that will be used for javac compiles
jni_libs list of string, list of native libraries that will be provided in or alongside the resulting jar
jni_uses_platform_apis bool, if true, use JNI libraries that link against platform APIs even if this module sets sdk_version.
jni_uses_sdk_apis bool, if true, use JNI libraries that link against SDK APIs even if this module does not set sdk_version.
kotlincflags list of string, list of module-specific flags that will be used for kotlinc compiles
libs list of string, list of java libraries that will be in the classpath
licenses list of string, Describes the licenses applicable to this module. Must reference license modules.
lineage string, Name of the signing certificate lineage file or filegroup module.
⊕lint
logging_parent string, the logging parent of this app.
main_dex_rules list of string, A list of files containing rules that specify the classes to keep in the main dex file.
manifest string, manifest file to be included in resulting jar
max_sdk_version string, if not blank, set the maximum version of the sdk that the compiled artifacts will run against. Defaults to empty string “”. See sdk_version for possible values.
min_sdk_version string, if not blank, set the minimum version of the sdk that the compiled artifacts will run against. Defaults to sdk_version if not set. See sdk_version for possible values.
multilib interface
native_bridge_supported bool, Whether this module is built for non-native architectures (also known as native bridge binary)
⊕openjdk9
⊕optimize
optional_uses_libs list of string, A list of shared library modules that will be listed in uses-library tags in the AndroidManifest.xml file with required=false.
overrides list of string, Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
owner string, vendor who owns this module
package_name string, the package name of this app. The package name in the manifest file is used if one was not given.
package_splits list of string, list of resource labels to generate individual resource packages
patch_module string, When compiling language level 9+ .java code in packages that are part of a system module, patch_module names the module that your sources and dependencies should be patched into. The Android runtime currently doesn’t implement the JEP 261 module system so this option is only supported at compile time. It should only be needed to compile tests in packages that exist in libcore and which are inconvenient to move elsewhere.
permitted_packages list of string, If not empty, classes are restricted to the specified packages and their sub-packages. This restriction is checked after applying jarjar rules and including static libs.
platform_apis bool, Whether to compile against the platform APIs instead of an SDK. If true, then sdk_version must be empty. The value of this field is ignored when module’s type isn’t android_app, android_test, or android_test_helper_app.
plugins list of string, List of modules to use as annotation processors
privapp_allowlist string, Specifies the file that contains the allowlist for this app.
privileged bool, Specifies that this app should be installed to the priv-app directory, where the system will grant it additional privileges not available to normal apps.
product_specific bool, whether this module is specific to a software configuration of a product (e.g. country, network operator, etc). When set to true, it is installed into /product (or /system/product if product partition does not exist).
⊕product_variables.always_use_prebuilt_sdks
⊕product_variables.arc
⊕product_variables.build_from_text_stub
⊕product_variables.debuggable
⊕product_variables.eng
⊕product_variables.malloc_not_svelte
⊕product_variables.native_coverage
⊕product_variables.pdk
⊕product_variables.platform_sdk_version_or_codename
⊕product_variables.unbundled_build
proprietary bool, whether this is a proprietary vendor module, and should be installed into /vendor
⊕proto
provides_uses_lib string, Optional name of the provided by this module. This is needed for non-SDK libraries, because SDK ones are automatically picked up by Soong. The name normally is the same as the module name, but there are exceptions.
ramdisk bool, Whether this module is installed to ramdisk
recovery bool, Whether this module is installed to recovery partition
rename_resources_package bool, Whether to rename the package in resources to the override name rather than the base name. Defaults to true.
replace_max_sdk_version_placeholder string, if not blank, set the maxSdkVersion properties of permission and uses-permission tags. Defaults to empty string “”. See sdk_version for possible values.
required list of string, names of other modules to install if this module is installed
resource_dirs list of string, list of directories relative to the Blueprints file containing Android resources. Defaults to [“res”] if a directory called res exists. Set to [] to disable the default.
resource_zips list of string, list of zip files containing Android resources.
rotationMinSdkVersion string, For overriding the --rotation-min-sdk-version property of apksig
sdk_version string, If not blank, set to the version of the sdk to compile against. Defaults to an empty string, which compiles the module against the private platform APIs. Values are of one of the following forms: 1) numerical API level, “current”, “none”, or “core_platform” 2) An SDK kind with an API level: “_” See build/soong/android/sdk_version.go for the complete and up to date list of SDK kinds. If the SDK kind is empty, it will be set to public.
services list of string, List of files to include in the META-INF/services folder of the resulting jar.
soc_specific bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true, it is installed into /vendor (or /system/vendor if vendor partition does not exist).
static_kotlin_stdlib bool, If true, package the kotlin stdlib into the jar. Defaults to true.
static_libs list of string, list of java libraries that will be compiled into the resulting jar
stem string, set the name of the output. If not set, name is used. To override a module with this property set, overriding module might need to set this as well. Otherwise, both the overridden and the overriding modules will have the same output name, which can cause the duplicate output error.
stl string, STL library to use for JNI libraries.
system_ext_specific bool, whether this module extends system. When set to true, it is installed into /system_ext (or /system/system_ext if system_ext partition does not exist).
system_modules string, When targeting 1.9 and above, override the modules to use with --system, otherwise provides defaults libraries to add to the bootclasspath.
target interface
⊕target.android
⊕target.host
⊕target.hostdex
target_required list of string, names of other modules to install on target if this module is installed
target_sdk_version string, if not blank, set the targetSdkVersion in the AndroidManifest.xml. Defaults to sdk_version if not set. See sdk_version for possible values.
uncompress_dex bool, Keep the data uncompressed. We always need uncompressed dex for execution, so this might actually save space by avoiding storing the same data twice. This defaults to reasonable value based on module and should not be set. It exists only to support ART tests.
updatable bool, Whether this app is considered mainline updatable or not. When set to true, this will enforce additional rules to make sure an app can safely be updated. Default is false. Prefer using other specific properties if build behaviour must be changed; avoid using this flag for anything but neverallow rules (unless the behaviour change is invisible to owners).
use_embedded_dex bool, Store dex files uncompressed in the APK and set the android:useEmbeddedDex=“true” manifest attribute so that they are used from inside the APK at runtime.
use_embedded_native_libs bool, Store native libraries uncompressed in the APK and set the android:extractNativeLibs=“false” manifest flag so that they are used from inside the APK at runtime. Defaults to true for android_test modules unless sdk_version or min_sdk_version is set to a version that doesn’t support it (<23), defaults to true for android_app modules that are embedded to APEXes, defaults to false for other module types where the native libraries are generally preinstalled outside the APK.
use_tools_jar bool, Add host jdk tools.jar to bootclasspath
uses_libs list of string, A list of shared library modules that will be listed in uses-library tags in the AndroidManifest.xml file.
v4_signature bool, If true, generate the signature file of APK Signing Scheme V4, along side the signed APK file. Defaults to false.
vendor bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true, it is installed into /vendor (or /system/vendor if vendor partition does not exist). Use soc_specific instead for better meaning.
vendor_ramdisk bool, Whether this module is installed to vendor ramdisk
vintf_fragments list of string, VINTF manifest fragments to be installed if this module is installed
visibility list of string, Controls the visibility of this module to other modules. Allowable values are one or more of these formats:

[“//visibility:public”]: Anyone can use this module.
[“//visibility:private”]: Only rules in the module’s package (not its subpackages) can use
this module.
[“//visibility:override”]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
[“//some/package:pkg”, “//other/package:pkg”]: Only modules in some/package and
other/package (defined in some/package/.bp and other/package/.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn’t have access. pkg
is a special module and must be used verbatim. It represents all of the modules in the
package.
[“//project:subpackages”, “//other:subpackages”]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
[“//project”]: This is shorthand for [“//project:pkg”]
[“:subpackages”]: This is shorthand for [“//project:subpackages”] where
//project is the module’s package. e.g. using [“:subpackages”] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:subpackages.
[“//visibility:legacy_public”]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.

If a module does not specify the visibility property then it uses the default_visibility property of the package module in the module’s package. If the default_visibility property is not set for the module’s package then it will use the default_visibility of its closest ancestor package for which a default_visibility property is specified. If no default_visibility property can be found then the module uses the global default of //visibility:legacy_public. The visibility property has no effect on a defaults module although it does apply to any non-defaults module that uses it. To set the visibility of a defaults module, use the defaults_visibility property on the defaults module; not to be confused with the default_visibility property on the package module. See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for more details.文章来源地址https://www.toymoban.com/news/detail-639201.html

到了这里,关于Android.bp文件说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Studio安卓读写NFC Ntag标签源码

    本示例使用的发卡器:  https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-21818769070.11.3513789erHXVGxid=615391857885 源码下载:AndroidstudioRFIDNFC读写源码资源-CSDN文库 

    2024年01月15日
    浏览(44)
  • 100套安卓(Android)毕业设计(带论文)、大作业、现成作品(Android Studio)Android毕业设计项目,源码+论文

    1,基于Android 语音朗读书籍管理系统 毕业设计 2,基于Android图书管理系统   毕业设计 3,基于 Android系统蓝牙通信呼吸检测设备管理系统  4,基于Android+java后台管理挂号系统  毕业设计 5,基于Android系统的JT808协议传输定位信息系统 毕业设计 6,基于Android生鲜食品管理系统

    2024年02月05日
    浏览(51)
  • 安卓Android Studio读写MifareOne M1 IC卡源码

    本示例使用的发卡器: https://item.taobao.com/item.htm?id=615391857885spm=a1z10.5-c-s.w4002-21818769070.11.3d2f789eOUPJBK 源码下载:AndroidstudioRFIDNFC读写源码资源-CSDN文库

    2024年02月01日
    浏览(41)
  • Android安卓备忘录(笔记)大作业简单实现有源码注释详细

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Notedatabase,java MainAcitivity.java

    2024年02月07日
    浏览(50)
  • Android安卓实战项目(2)---健身UI APP(源码在文末)

    1.大致浏览 2.功能介绍 (1)功能一 第一个界面点击后可以弹出图像,如图: (2)功能二 界面二的控件可以通过滑动下拉条来调解 MainActivity.java PopupActivity.java FitnessMove.java 链接:https://pan.baidu.com/s/1fE-Koh-VmnFOxNKF9CsQNA?pwd=jynl 提取码:jynl 有开发需求私信作者 15135757306

    2024年02月15日
    浏览(45)
  • 基于安卓Android的房屋租赁系统APP(源码+文档+部署+讲解)

    毕设帮助、技术解答、源码交流 联系方式见文末。 房屋租赁App设计的目的是为用户提供房源信息、租房订单、房源资讯等方面的平台。 与PC端应用程序相比,房屋租赁App的设计主要面向于房主,旨在为管理员和租客、房主提供一个房屋租赁App。租客可以通过APP及时查看房源

    2024年02月22日
    浏览(47)
  • Android File Transfer(安卓文件传输工具)

    Android File Transfer 是一款安卓文件传输工,它允许在Mac操作系统和Android设备之间进行文件传输。 该软件通过USB连接将文件从Mac电脑传输到连接的Android设备,或者反过来从Android设备传输文件到Mac电脑。这包括照片、视频、音乐、文档和其他文件类型。只需通过USB线缆将Android设

    2024年02月04日
    浏览(47)
  • Android:Linux上编译OpenCV的Android库,从源码编译出一个轻量级的OpenCV安卓库

    (原文在这里,我根据这篇文章终于也能编译成功可以使用的OpenCV库文件了: Linux上编译OpenCV的Android库 https://zhuanlan.zhihu.com/p/301203711 整个编译过程只用下载Android NDK和OpenCV源码。工具链android.toolchain.cmake,是NDK:android-ndk-r19c-linux-x86_64自带的,不用自己编译了。使用WSL Ubuntu记

    2024年02月05日
    浏览(60)
  • 基于安卓Android的校园点餐系统APP(源码+文档+部署+讲解)

    毕设帮助、技术解答、源码交流 联系方式见文末。 使用点餐系统app相对传统点餐管理方式具备很多优点:首先可以大幅提高点餐信息检索,只需输入点餐相关信息就能在数秒内反馈想要的结果;其次可存储大量的点餐信息,同时点餐信息安全性有更高的保障;相比纸质文件

    2024年04月16日
    浏览(43)
  • 安卓文件传输工具---Android File Transfer中文

    Android File Transfer是一款专为安卓设备设计的文件传输工具,可以帮助用户快速方便地在安卓设备和计算机之间传输文件。这款软件支持多种文件类型,包括图片、音乐、视频、文档等,使得用户可以轻松地将文件从计算机传输到安卓设备,或从安卓设备传输到计算机。 Andro

    2024年01月25日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包