簡體   English   中英

如何為 Android 開發創建自己的庫,以便在您編寫的每個程序中使用?

[英]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 Studio中創建庫的說明

創建庫模塊

要在項目中創建新的庫模塊,請執行以下操作:

  1. 單擊文件>新建>新建模塊

  2. 在出現的“ 創建新模塊”窗口中,單擊“Android庫”,然后單擊“下一步”。

    還有一個選項可以創建一個Java庫 ,它可以構建一個傳統的JAR文件。 雖然JAR文件對許多項目很有用 - 尤其是當您想與其他平台共享代碼時 - 它不允許您包含Android資源或清單文件,這對於Android項目中的代碼重用非常有用。 因此本指南重點介紹如何創建Android庫。

  3. 為庫命名並為庫中的代碼選擇最低SDK版本,然后單擊“ 完成”

Gradle項目同步完成后,庫模塊將顯示在左側的“ 項目”面板中。 如果您沒有看到新的模塊文件夾,請確保它顯示的是Android視圖

將app模塊轉換為庫模塊

如果您的現有應用程序模塊包含要重用的所有代碼,則可以將其轉換為庫模塊,如下所示:

  1. 打開模塊級build.gradle文件。

  2. 刪除applicationId的行。 只有Android應用模塊才能定義此功能。

  3. 在文件的頂部,您應該看到以下內容:

    apply plugin: 'com.android.application'

    將其更改為以下內容:

    apply plugin: 'com.android.library'

    保存文件,然后單擊工具> Android>使用Gradle文件同步項目

如果你的庫是在java代碼組成的.java文件中。 有關如何在mobile.tutsplus.com上使用該庫的詳細教程。 下方鏈接:

http://mobile.tutsplus.com/tutorials/android/android-essentials-creating-android-compliant-libraries/

比如我想用拉來的Chrisbanes在這里Github.com刷新庫https://github.com/chrisbanes/Android-PullToRefresh/tree/master/library 該庫的結構采用Android應用程序的形式。 它具有如下形式:

res/
src/
AndroidManifest.xml
pom.xml
project.properties

如何在Eclipse上使用:

  1. 在Eclipse中創建新項目。 為您的項目命名。 選擇“從現有源創建項目”。 在“位置”中選擇包含上述文件的根文件夾的位置。 選擇目標並單擊“完成”。
  2. 選擇您創建的新項目的屬性。 選擇“Android”選項。 如果尚未選中,則選中“Is Library”復選框。 關閉屬性。
  3. 從將要使用此庫的項目添加對庫的引用。 選擇使用此庫的項目。 打開屬性。 選擇“Android”選項。 在“Is Library”的底部。 不要選中“Is Library”復選框。 點擊右側的“添加”按鈕。 您在第1步和第2步創建的項目應該已准備好供選擇。 選擇它並單擊“應用”。 關閉屬性。
  4. 您已准備好引用項目中的類。

使用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

創建模塊

  1. 使用空活動創建新項目
  2. 單擊文件 -> 新建 -> 新模塊 -> 並選擇 android 庫。
  3. 創建新模塊后,您可以為庫添加 java 類或其他內容

將庫導出到 AAR 文件

您可以查看了解更多信息

將庫導出到 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(模塊:應用程序)

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

將你的項目分享到 Github

訪問jitpack網站

按照步驟上傳您的圖書館

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM