如何为您编写的每个程序创建自己的 Android 开发库?
Posted
技术标签:
【中文标题】如何为您编写的每个程序创建自己的 Android 开发库?【英文标题】:How to create your own library for Android development to be used in every program you write? 【发布时间】:2011-05-04 08:58:24 【问题描述】:我是一名 Delphi 程序员,多年来编写了数百个类和例程,我可以在我编写的每个 Delphi 程序中使用这些类和例程。
这个库被称为 dlib,可以在每个 Delphi 程序中使用,方法是将此文件夹放在我的库路径中并使用 a 的使用部分中的一个单元德尔福单元。
作为 Java 和 android 开发的新手,我想知道如何以类似的方式做到这一点。
所以我的问题是,我如何编写自己的类,将它们放在某个全局文件夹中,并在我编写的每个 Android 程序中使用这些类和例程?
我知道这是一个基本问题,我可以通过搜索 Google 并在 Eclipse 中尝试找到它,但如果有人能让我走上正轨,我知道我会节省很多时间。
谢谢。
【问题讨论】:
我强烈建议不要制作这类通用库。 Java 往往已经拥有您需要的大部分功能,而且通常更聪明的人已经完成了您需要做的任何事情。你们的通用图书馆是做什么的? 【参考方案1】:您必须创建 Android 库项目。 在 Eclipse 中创建 android 项目,进入 Project Properties -> Android 并检查 isLibrary 属性。现在您可以将此库添加到您的 Android 应用程序项目中,方法是将其添加到同一属性页上的列表中。
更详细的说明here 在使用图书馆项目部分
【讨论】:
如果两个不同的应用程序都使用同一个android库项目,当两个应用程序安装在同一部手机上时,是否安装了同一个库的两个副本? @enigmaticPhysicist 该库实际上是在编译时引入的。所以是的,这两个应用程序都有自己的库副本 必须有更好的方法。也许在未来的 Android 版本中。【参考方案2】:Instructions for creating a library in Android Studio:
创建库模块
要在您的项目中创建新的库模块,请执行以下操作:
点击文件>新建>新建模块。
在出现的Create New Module窗口中,点击Android Library,然后点击Next。
还有一个选项可以创建一个Java 库,它会构建一个传统的 JAR 文件。虽然 JAR 文件对许多人很有用 项目——尤其是当您想与其他人共享代码时 平台——它不允许你包含 Android 资源或 manifest 文件,这对于 Android 中的代码重用非常有用 项目。所以本指南的重点是创建 Android 库。
为您的库命名并为库中的代码选择最低 SDK 版本,然后点击完成。
Gradle 项目同步完成后,库模块将出现在 项目面板在左侧。如果您没有看到新模块 文件夹,确保它显示Android view。
将应用模块转换为库模块
如果您有一个现有的应用程序模块,其中包含您想要的所有代码 重用,你可以把它变成一个库模块,如下所示:
打开模块级
build.gradle
文件。删除
applicationId
的行。只有 Android 应用模块可以定义它。在文件顶部,您应该会看到以下内容:
apply plugin: 'com.android.application'
将其更改为以下内容:apply plugin: 'com.android.library'
保存文件并点击 Tools > Android > Sync Project with Gradle 文件。
【讨论】:
感谢您添加此答案,这与 Android Studio 相比要好得多。【参考方案3】:如果您的库位于由 java 代码组成的 .java 文件中。在 mobile.tutsplus.com 上有一个关于如何使用该库的非常详细的教程。链接如下:
http://mobile.tutsplus.com/tutorials/android/android-essentials-creating-android-compliant-libraries/
例如,我想使用 Github.com 上的 Chrisbanes 的 Pull To Refresh 库https://github.com/chrisbanes/Android-PullToRefresh/tree/master/library。该库的结构采用 Android 应用程序的形式。它的形式如下:
res/
src/
AndroidManifest.xml
pom.xml
project.properties
如何在 Eclipse 上使用:
-
在 Eclipse 中创建新项目。为您的项目命名。选择
“从现有源创建项目”。选择所在位置
在“位置”中包含上述文件的根文件夹。
选择您的目标并点击完成。
选择您创建的新项目的属性。选择“安卓”
选项。如果尚未选中“是库”复选框
选择。关闭属性。
从将要使用的项目中添加对库的引用
这个图书馆。选择使用此库的项目。打开
特性。选择“安卓”选项。在底部的“是
图书馆”。不要选择“是图书馆”的复选框。单击“添加”按钮
在右边。您在第 1 步和第 2 步创建的项目应该
被列出以供选择。选择它并单击应用。关闭
属性。
您已准备好引用项目中的类。
【讨论】:
谢谢它帮助我...来自我们 fgroupindonesia 团队的问候:D【参考方案4】:使用 java,您可以创建一个 Java 存档 (jar),其中包含该库的所有类(*.class 文件),并且 jar 文件是您的库。
要使用它,只需将它添加到类路径。
(对于“jar”和“classpath”:基本的Java概念,请用谷歌找到教程,反正这些概念你得懂,越早越好;)
【讨论】:
嗨,我的 jar 库中可以有可绘制对象或布局吗? afaik,答案是:不。使用已接受的可绘制对象和布局答案中描述的 android 库概念。【参考方案5】:用 Java 转换你的所有类并制作一个 jar 文件。通过在 libs/ 文件夹中复制然后添加到构建路径来在您的 android 项目中使用此 jar。清理项目,然后运行它。
【讨论】:
【参考方案6】:如果您使用的是新的 android studio 版本和 gradle 7.0.3
Android Studio 北极狐 | 2020.3.1 补丁 3 构建 #AI-203.7717.56.2031.7784292,构建于 2021 年 10 月 1 日 运行时版本:11.0.10+0-b96-7249189 amd64 虚拟机:Oracle 公司的 OpenJDK 64 位服务器虚拟机 视窗 10 10.0 GC:G1年轻代,G1老年代 内存:1280M 核心:2 注册表:external.system.auto.import.disabled=true
创建模块
-
使用空活动创建新项目
点击文件->新建->新模块->选择android库。
创建新模块后,您可以添加 java 类或其他东西
你的图书馆
将库导出到 AAR 文件
您可以查看this了解更多信息
将库导出到 jitpack.io
这样设置这个文件
build.gradle(项目)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript
repositories
google()
mavenCentral()
maven url 'https://jitpack.io'
maven url "https://plugins.gradle.org/m2/"
dependencies
classpath 'com.android.tools.build:gradle:7.0.3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
task clean(type: Delete)
delete rootProject.buildDir
build.gradle (module:app)
plugins
id 'com.android.application'
android
lintOptions
abortOnError false
android
compileSdk 31
defaultConfig
minSdk 16
targetSdk 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
dependencies
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
build.gradle(模块:YourLibraryName)
plugins
id 'com.android.library'
id 'maven-publish'
task androidSourcesJar(type: Jar)
classifier 'sources'
from android.sourceSets.main.java.srcDirs
project.afterEvaluate
publishing
publications
release(MavenPublication)
groupId 'com.github.YourGithubUsername'
from components.release
artifact androidSourcesJar // optional sources
android
compileSdk 31
defaultConfig
minSdk 16
targetSdk 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
dependencies
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
在根项目(YourProjectName -> Gradle -> 右键 -> 新建 -> 文件 -> 将其命名为“jitpack.yml”并将此代码放入 jitpack.yml 文件中创建文件 jitpack.yml
jdk:
- openjdk11
before_install:
- chmod +x gradlew
install:
# - ./gradlew build :lib:publishToMavenLocal
- ./gradlew build publishToMavenLocal
Share your project to Github
访问jitpack网站
按照this 步骤上传您的库
【讨论】:
以上是关于如何为您编写的每个程序创建自己的 Android 开发库?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 android 和 iphone 创建自己的 Magento 移动应用程序 [关闭]