![](/img/trans.png)
[英]How to create your own Android Library (implementation) in Android Studio?
[英]How to create your own library for Android development to be used in every program you write?
我是一名 Delphi 程序員,多年來編寫了數百個類和例程,我可以在我編寫的每個 Delphi 程序中使用它們。
該庫稱為 dlib,可以通過將此文件夾放在我的庫路徑中並使用 Delphi 單元的使用部分中的單元之一在每個 Delphi 程序中使用。
作為 Java 和 Android 開發的新手,我想知道如何以類似的方式做到這一點。
所以我的問題是,如何編寫自己的類,將它們放在某個全局文件夾中,並在我編寫的每個 Android 程序中使用這些類和例程?
我知道這是一個基本問題,我可能可以通過搜索 Google 並在 Eclipse 中嘗試找到它,但是如果有人能讓我走上正軌,我知道我會節省很多時間。
謝謝。
您必須創建Android庫項目。 在Eclipse中創建android項目,進入Project Properties - > Android並檢查isLibrary屬性。 現在,您可以將此庫添加到同一屬性頁上的列表中,從而將此庫添加到Android應用程序項目中。
更詳細的說明這里與庫項目部工作
創建庫模塊
要在項目中創建新的庫模塊,請執行以下操作:
單擊文件>新建>新建模塊 。
在出現的“ 創建新模塊”窗口中,單擊“Android庫”,然后單擊“下一步”。
還有一個選項可以創建一個Java庫 ,它可以構建一個傳統的JAR文件。 雖然JAR文件對許多項目很有用 - 尤其是當您想與其他平台共享代碼時 - 它不允許您包含Android資源或清單文件,這對於Android項目中的代碼重用非常有用。 因此本指南重點介紹如何創建Android庫。
為庫命名並為庫中的代碼選擇最低SDK版本,然后單擊“ 完成” 。
Gradle項目同步完成后,庫模塊將顯示在左側的“ 項目”面板中。 如果您沒有看到新的模塊文件夾,請確保它顯示的是Android視圖 。
將app模塊轉換為庫模塊
如果您的現有應用程序模塊包含要重用的所有代碼,則可以將其轉換為庫模塊,如下所示:
打開模塊級
build.gradle
文件。刪除
applicationId
的行。 只有Android應用模塊才能定義此功能。在文件的頂部,您應該看到以下內容:
apply plugin: 'com.android.application'
將其更改為以下內容:
apply plugin: 'com.android.library'
保存文件,然后單擊工具> Android>使用Gradle文件同步項目 。
如果你的庫是在java代碼組成的.java文件中。 有關如何在mobile.tutsplus.com上使用該庫的詳細教程。 下方鏈接:
比如我想用拉來的Chrisbanes在這里Github.com刷新庫https://github.com/chrisbanes/Android-PullToRefresh/tree/master/library 。 該庫的結構采用Android應用程序的形式。 它具有如下形式:
res/
src/
AndroidManifest.xml
pom.xml
project.properties
如何在Eclipse上使用:
使用java,您可以創建一個Java Archive(jar),其中包含該庫的所有類(* .class文件),jar文件是您的庫。
要使用它,只需將其添加到類路徑中即可 。
(對於“jar”和“classpath”:基本的Java概念,請使用google查找教程,無論如何你必須要理解這些概念,越早越好;))
用Java轉換所有類並生成一個jar文件。 通過復制libs /文件夾然后添加到構建路徑,在Android項目中使用此jar。 清理項目然后運行它。
如果您使用的是新的 android studio 版本和 gradle 7.0.3
Android Studio 北極狐 | 2020.3.1 補丁 3 Build #AI-203.7717.56.2031.7784292,構建於 2021 年 10 月 1 日 運行時版本:11.0.10+0-b96-7249189 amd64 VM:Open 64 位服務器 VM,Oracle Windows 64 位服務器 10JDK10 GC10 Corporation G1 Young Generation、G1 Old Generation 內存:1280M 內核:2 注冊表:external.system.auto.import.disabled=true
您可以查看此了解更多信息
像這樣設置這個文件
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(模塊:應用程序)
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'
}
在根項目中創建文件 jitpack.yml(YourProjectName -> Gradle -> 右鍵單擊 -> 新建 -> 文件 -> 將其命名為“jitpack.yml”並將此代碼放入 jitpack.yml 文件
jdk:
- openjdk11
before_install:
- chmod +x gradlew
install:
# - ./gradlew build :lib:publishToMavenLocal
- ./gradlew build publishToMavenLocal
訪問jitpack網站
按照此步驟上傳您的圖書館
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.