編輯:關於Android編程
經常逛github,總看到別人的readme中寫著compile ‘com.xxx:1.0.xxx’,這個已經越來越普及,個人,團人,公司都在用,雖然做android這麼長時間了,但是發現自己好像不會,走了好多彎路,幾經折騰,這沒什麼技術含量的玩意,還挺費時的,所以,下定決心,發布一個開源庫出來。Github: https://github.com/hejunlin2013/SuperIndicator
今天的Agenda如下:
主工程下的的build.gradle配置Maven,jcenter服務 創建一個類module 上傳類庫到jcenter倉庫AndroidStudio是從Maven Repository 下載類庫的。基本上有jcenter和Maven Central這兩個服務器用於下載Android的類庫。
在工程(注意是主工程下的)中的build.gradle有一段腳本如下:
buildscript {
repositories {
jcenter() //jcenter倉庫
mavenCentral() //Maven Central倉庫
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
了解到Google studio團隊最先使用MavenCentral作為遠程倉庫下載我們用的編譯類庫的。
MavenCentral有一些問題。首先是對於開發者體驗不好,種種原因Google studio團隊遠程倉庫換成jcenter。
jcenter有一個打包工廠,每天特別多的類庫從此誕生,用於github上各種項目中。
像我們平時在app目錄下build.gradle中的dependencies中經常看到的:
compile 'com.hejunlin.superindicatorlibray:superindicatorlibray:1.0.3'
這是什麼意思呢?它實際上相當於
GROUP_ID:ARTIFACT_ID:VERSION
在這句代碼裡面的GROUP_ID是com.hejunlin.superindicatorlibray,ARTIFACT_ID是superindicatorlibray(類庫名),VERSION是1.0.3。
首先在Android Studio中點擊File菜單,選擇New->New Module,然後在彈出視圖中選擇Android Library,點擊Next後填寫庫的名稱。

創建完新的library後就可以寫公用部分的類代碼了,我這裡是寫superindicatZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcmxpYnJheaOs0LS6w7rzo6y/z7aou7m1w9PQ0ru49nNhbXBsZdauwOC1xLLiytTV4rj2wOC/4qOsztLTw7XEysfErMjPYXBwuaSzzKOswO/D5tPQQWN0aXZpdHnWrsDgtcSjrL3Tz8LAtL7N1NphcHC5pLPM0v3Tw9XiuPbA4L/io6zU2mFwcM/CtcRidWlsZC5ncmFkbGXW0MztvNPSwMC1o7o8L3A+DQo8cD48aW1nIGFsdD0="這裡寫圖片描述" src="/uploadfile/Collfiles/20160907/20160907094357168.png" title="\" />
compile project(‘:superindicatorlibray’) //冒號後是你的類庫的名字
本地充分測試好後,接著你就上要開始上傳jcenter倉庫了。
那麼如何上傳你的類庫到jcenter倉庫?


點擊add,然後如圖填寫:


點擊Add New Package,如圖:

現在一個空倉庫和一個package已經創建好了,接下來要在studio,寫腳本配置,上傳類庫
添加bintray插件在module中類庫下build.gradle中添加如下腳本
apply plugin: 'com.jfrog.bintray'//添加bintray插件 apply plugin: 'com.github.dcendents.android-maven'
Bintray在上傳庫時需要一個pom文件,而這個文件可以讓Maven插件自動生成,但你還是需要給出groupId和version的值,將下面這兩行代碼添加到庫module的build.gradle中。
group = 'com.hejunlin.superindicatorlibray' version = '1.0.3'編譯類庫
task generateSourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier 'sources'
}
task generateJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs //source指定了源碼位置
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
//這裡dependsOn意為僅當generateJavadocs完成後才開始本task,和ant腳本也是對應的。
task generateJavadocsJar(type: Jar, dependsOn: generateJavadocs) {
from generateJavadocs.destinationDir
classifier 'javadoc'
}
將本地編譯過的類庫及源碼及doc文件上傳到Maven倉庫中package中,需要將task添加到一個archive中,只需要向庫module下的build.gradle中添加如下代碼:
artifacts {
archives generateJavaDocsJar
archives generateSourcesJar
}
接下來還要配置local.properties添加Bintray認證,git提交時,也會讓你填用戶名和密碼,那jcenter,如何配置呢?
我們須要本地local.properties文件下配置,如果沒有沒有就創建一個,放在主工程目錄下:

內容如下:
bintray.user=你的Bintray注冊時的名字 bintray.apikey=xxxxxxxxxxxxxxxxxxxxx
接下來說下這個apikey在哪?


輸入密碼,就可以得到這個key。接下來回到庫module下的build.gradle中添加如下腳本:
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
pkg {
repo = 'maven'
name = 'com.hejunlin.superindicatorlibray'
version {
name = '1.0.3-release'
desc = "a superindicatorlibray for viewpager, banner"
vcsTag = '1.0.3'
}
licenses = ['Apache-2.0']
vcsUrl = 'https://github.com/hejunlin2013/SuperIndicator.git'
websiteUrl = 'https://github.com/hejunlin2013/SuperIndicator'
}
configurations = ['archives']
}
最後我們在Android studio中Terminal命令行中,執行:

gradlew install
如果順利的話,過幾分鐘就會出現

恭喜你,編譯成功了,去類module看,多了個build的目錄,這裡東西一會要上傳jcenter:

接下來需要把build成功的文件upload到bintray上,同樣在Terminal命令行,執行如下命令:
gradlew bintrayUpload
順利的話,也會出現,和上面的圖一樣的BUILD SUCCESSFUL
這時檢查你在bintray創建的package,你會看到對應的版本號

點擊進去,如圖,首次沒有打包時,這裡是一個add to jcenter的字樣,我這裡是打了包的。就變成了下圖:

點擊那個箭頭的“add to jcenter”,接下來會跳到一個Request to include package GradientUI in jcenter的頁面,

填下你的groupId,直接send,就會發起一個打包版本的請求,
過幾個小時,通過jcenter那邊的審核就會在bintray上收到jcenter那邊的同意消息提醒。
恭喜你,你的類庫上傳到jcenter成功了!大家都可以用你的類庫了。
我們上傳完成後,如發現類庫中的一個bug,這就涉及到更新問題,那麼怎麼更新呢?
一句話,修改代碼後,改本地build.gradle的版本號,按上面的操作,執行gradlew install,gradlew bintrayUpload,到bintray上點擊“
Stage snapshots on oss.jfrog.org”同樣發送一個請求,不用幾分鐘,就可以用了,升級,不像首次提交那樣,非常快。馬上就你可以更新github上的引用版本號,瞬間心情爽爽哒。

其實寫這篇文章,是沒有一點技術分析的過程,但是,如果當初有人寫這麼一個圖文並茂的教程。我可能不會走那麼多彎路,可以更節省我的時間,做更多有意義的事情。如果腳本什麼的,沒寫全,可以參考我的github:SuperIndicator類庫:https://github.com/hejunlin2013/SuperIndicator,喜歡可以點star。
Android應用集成百度定位及導航
步驟如下:將以上所有so庫分別放到arm64-v8a,armeabi,armeabi-v7a,x86,x86_64文件夾下 將assets文件夾裡的資源拷貝到/項目名/a
華為榮耀V8怎麼插卡?華為榮耀V8用什麼SIM卡?榮耀V8手機SIM卡安裝圖文教程
昨天,華為榮耀V8已經在華為商城和京東上正式開賣了,榮耀V8是華為榮耀推出的全新V系列手機,它采用了雙卡雙待的模式,擁有5.7英寸大屏,配備了2K分辨率顯示
Android自定義View過程解析
Android自定義的view,主要是繼承view,然後實現ondraw這個方法,來進行繪制。 1. 編寫自己的自定義view 2. 加入邏輯線程 3
Android圓形ImageView
資源是從github上撸下來的,具體網址忘了。。。我就根據我的資源做個描述:目錄結構:操作步驟:①attrs.xml放在values文件夾下②CircleImageVie