小引子
在平時的開發過程中,我們經常會查閱很多的資料,最常參考的是 github 的開源項目。通常在項目的主頁面能看到項目的簡介和基本使用,並且時不時能看到頁面匯中有好多的彩色標簽,看起來很酷,很專業,很有逼格,能提升很多的好感度。
前言
本文又是一篇很長的文章,如之前寫的某篇文章一樣,基本是一口氣連續兩三天的寫。寫啊寫啊寫,不知不覺就寫了好多,其實有很多是素材圖片,務必做到每個細節我都實踐一遍。
考慮到同學們的時間有限,各取所需,所以按照我的慣例,首先有一篇完整版,其次,有一篇縮略版。可是這次縮略版不好做,所以綜合考慮,把每個單獨的知識點拆分出來,抓住重點,盡量讓大家看的開心。
這里需要提醒的是:
看了完整版就不用看精簡集合了,內容都一樣。完整版具有一定的連貫性。
精簡版就看的清爽哈,以備自己玩的時候,快速查找相關資料和步驟。
這里優先匯總下:
相關鏈接:
完整版:
打造一個高逼格的android開源項目——小白全攻略
精簡集合版:
徽章系列1: Top 30 android 開源項目徽章
徽章系列2:JitPack 的使用
徽章系列3: Travis CI 的使用
徽章系列4: Circle CI 的使用
徽章系列5: Codecov 的使用
徽章系列6: Api_Level 的使用
徽章系列7: codacy 的使用
徽章系列8:生成個性徽章
github 地址:
徽章項目 Demo github 地址:
https://github.com/gdky005/AndroidBadge
下面正文,正式開始。
范例
我們以最流行的 android 開源項目 MPAndroidChart 為例來看看。
- 前兩個藍色的標簽:開始兩個藍色的標簽是開源項目主要貢獻者 Twitter 的聯系方式,點擊后可以跳入到 Twitter 的主頁,查看該大神的 動態。
- 橘色的標簽:是國外比較有名的 開源項目網站 android-arsenal, 很多開源項目都會在這里找到,有該項目的詳細介紹。包含組員,版本號,github 項目基礎信息等等。點擊后會進入 MPAndroidChart 項目的首頁,能看到有好多想知道的,不想知道的各種信息。
- release藍色的標簽: 點擊后能進入到比較有名的 jitpack.io 對應的MPAndroidChart 頁面,直接獲取 MPAndroidChart 的最新版本,也能看到之前的構建歷史。下面會重點介紹 jitpack.io 的使用。
- 綠色的標簽: 這個比較有意思,是 當前想支持的最低版本,MPAndroidChart的最低版本是 api-8。 點擊后會進入到Android 2.2–2.2.3 Froyo (API level 8) 的詳細介紹。這個功能是 android-arsenal 專門提供 開發者使用的。 下面也會有所介紹。
下面我們將 這些標簽稱之為 徽章 (shields)。
Top 30 android 開源項目徽章
我們嘗試在 github 里面搜索 以 android 關鍵字 開發語言為 java 的開源項目。
統計情況如下:
- Retrofit 0
- okhttp 0
- Butter Knife 0
- MPAndroidChart 4
- Android-Universal-Image-Loader 2
- glide 1
- leakcanary 0
- EventBus 1
- picasso 0
- zxing 3
- iosched 0
- Fresco 1
- lottie-android 0
- RxAndroid 3
- libgdx 1
- SlidingMenu 0
- PhotoView 1
- android-async-http 1
- material-dialogs 5
- AndroidUtilCode 0
- androidannotations 3
- Material-Animations 1
- fastjson 5
- ViewPagerIndicator 0
- plaid 0
- PocketHub 1
- tinker 4
- Android-CleanArchitecture 2
- Android-PullToRefresh 0
- MaterialDesignLibrary 1
我們是篩選容器就是 30個,統計日期:2017年04月27日(隨着時間推移,可能略微有變動)。使用標簽的有 18個,未使用的有12個。 使用概率大約是:60%。如果篩選容器的范圍再大一點可能更多,沒有使用徽章的12個項目,可能由於歷史原因,或者個人原因未使用,但是不管怎么說,使用徽章的人會越來越多。
為什么要使用徽章?
徽章 shields
徽章的使用不僅僅是為了裝 B,而是為了讓開源想更高效。進入項目主頁一眼能看出需要的東西,例如該項目能否編譯通過,當前最新的版本是什么等。
徽章能突出視野,github 默認給我們展示的是黑白世界,但是通過 徽章,將會得到改變。重要的信息可以一目了然。
最常用徽章有哪些?
一份不太靠譜的標准,不過你應該掌握:
(PS: 上圖中的圖標順序對應下面的順序)
- jitpack 徽章:JitPack 是一個倉庫,類似 maven,binary, 主要是幫我們生產 android 項目的 aar or jar 的平台。基於 GitHub,可以很方便將 library 發布到遠程,然后可以用 gradle 依賴到任何一個項目中。
- travis-ci 徽章:Travis-CI 是一個線托管的CI服務,不需要自己搭服務器,在網頁上點幾下就好,用起來更方便。最重要的是,它對開源項目是免費的。
- circle-ci 徽章:Cricle-CI 是也一個線托管的CI服務,和上面相同,不過這個相對來說比較好用一些,可以 SSH 到測試容器,方便在出問題的時候上去調試找原因,界面相對好看一些。
- codecov 徽章:Codecov 是開源的測試結果展示平台,將測試結果可視化。Github上許多開源項目都使用了Codecov來展示單測結果。
- api level 徽章:Api-Leavel 是 android-arsenal 網站提供的 android api 展示的徽章。可以在項目主頁中直接使用 badge 的內容。
- codacy 徽章:編程代碼自動審查服務平台。幫助開發者及時發現代碼中的 bug,提升軟件運行質量,主要包括代碼質量、語法規范、功能可用性方面的檢查。
- 個人專屬 徽章:shiedls 根據自己的需求可以定制很多樣式的徽章,全憑個人 愛好,怎么開心怎么玩。
環境說明
這里我用一個簡單的 android 項目來做一個說明,其他語言也是可以的,這里僅僅展示一個實例。
我的本機的android環境說明如下:
- Mac
- Android Studio 2.4 preview 4
- gradle: 3.4.1
- java: 1.8.0_73
- buildToolsVersion: 25.0.2
- compileSdkVersion: 25
- minSdkVersion: 14
- support: appcompat-v7:25.1.0
- constraint: constraint-layout:1.0.0-beta4
- classpath: com.android.tools.build:gradle:2.4.0-alpha4
用其他版本或者環境也是可以的, 這里只是說明。 如果任何遇到問題,可以在我的博客里面留言,聯系詳情為:http://www.gdky005.com/about/ 因為該文的完整版真的很長,涉及到很多的技術,所以專門設立了 QQ群:621094999, 有疑問或非常感興趣的同學,可以來次探討,也許一些新功能就是你們發覺的呢。 (PS:本應該在文末尾添加聯系方式的,但是無奈,很多網站都有爬蟲系統,好不容易寫的文章就被爬走了,導致很多小伙伴遇到問題后,各種留言,但是我就是看不到,所以這次采取特殊方式,見諒哈)
JitPack 的使用
創建 Android Library
- 在 AS 中創建標准的 android 項目:
- 創建 Library:
- 創建 badge library 成功。
配置相關文件
進入 jitpack android 可以看到 jitpack 為我們提供的文檔幫助。
- 在項目的根目錄下的 build.gradle 文件中添加:
- 在 library 下的 build.gradle 中添加:
, 對應官網中說的 『group='com.github.YourUsername’』, 其實可以不寫,寫不寫都會自動生成。 即使你寫成了別的,最終還是以這樣的格式輸出。
AndroidBadge 中 的 build.gradle :
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' // Add this line
AndroidBadge 里面的 badge (library) :
apply plugin: 'com.github.dcendents.android-maven'
發布到 Github (這里直接展示 AS 中的界面圖形操作,會命令行的同學隨意)
- 登錄自己的 github 賬號,然后創建一個 項目,在首頁右邊能看到:
- 點擊 大綠色 按鈕,並填寫信息:
。 那個協議,你們隨意,這里只是演示。
- 創建成功后:
,拷貝當前項目地址。
- 在 AS 的項目中創建 git 倉庫:
, 點擊后,直接 選擇 ok。將項目添加到 git 管理
。 項目中的文件都變成綠色后:
,耐心等待完成后, 本地項目已經被 git 管理起來了,然后把代碼提交到 github 即可。可能會有沖突,自行解決即可。
- 現在我們給 library 的 badge 項目添加一個工具類:
, 並提交到 github。
Github 打 release or tag
創建第一個 release 分支:
發布成功以后就能看到:
一般用 release 就可以了, 在適當的時候 用 tag。
在 JitPack 上生成 aar
- 進入 https://jitpack.io/。
- 將 github 的項目地址: https://github.com/gdky005/AndroidBadge, 直接拷貝 到 jitpack 網頁中的文本框中。
- 點擊 Look Up 后:
, 等里面的那個圈圈 轉完 以后,出現 綠色的這個:
說明已經發布 aar 成功,那么我們 可以直接使用了。 如果點開這個東西,會看到編譯的和發布的過程。
- 如果是紅色的,說明有錯誤,點開查看,修改后重新構建。
在 app Demo 中測試是否生效
點擊 get 后,能看到:
- 給項目根目錄下的 build.gradle 添加:
- 給app 項目里面的 build.gradle 添加:
AndroidBadge 中 的 build.gradle :
maven { url 'https://jitpack.io' }
AndroidBadge 里面的 app 的 build.gradle :
compile 'com.github.gdky005:AndroidBadge:v1.0.0'
好的,現在我們已經添加成功了,在 MainActivity 里面是是吧,看能否調到之前在 library 里面的寫的 Utils.getVersion()。很高興的是我們調出來了:
在項目的最底下也能看到:
。 運行 app 項目:
問題來了,我們修改library 后也能調用到嗎?
讓咱們一起試試吧:
- 修改 badge 項目中的 1.0.0 為 1.0.1 :
。
- 提交代碼后,push 到 github。 提交成功以后,我們重復上面的打 release 步驟
,
,
- 然后再去 jitpack 上看看:
多了一個 v1.0.1, 點擊 get 吧。
- 發布成功后,我們去 app 里面試試。
- 同步后,直接運行 app。非常好,我們的修改的東西已經變了:
。
至此, jitpack 基本也差不多了,但是貌似缺少了最重要的一點吧。
jitpack 的徽章怎么弄
還是在剛剛的 jitpack 界面,只是我們把 頁面拉倒底部。
點擊后:
是不是看到了熟悉的 md 文檔的格式呢? 看不懂也沒關系,下面會專門講解。
- 拷貝內容:
- 打開 github 的 AndroidBridge 項目:
,點擊該文件。
- 讓我們在線編輯下:
- 給 github 中的 這個 readme.md 文件添加點東西吧。
- 讓我們 保存下。
- 然后回到項目首頁看看:
棒棒的,添加成功。
Travis CI 的使用
官網: http://travis-ci.org/
ps: 這個是公開的,如果需要使用私有的,請使用 .com 域名。
需要提醒的是:每次提交代碼后都會重新下載需要的資源文件哦,所以時間很長,耐心等待吧。
TravisCI 有什么用?
travis-ci 就是 自動化 CI 工具,類似於大公司經常使用的 Jenkins,但是 travis-ci 是在雲端的,而是支持 github, 還免費,我們可以 用 travis-ci 做很多的事情,不僅僅是 編譯看 項目有沒有問題。例如在項目構建結束以后,我們可以打包,並發布 apk 到都 蒲公英, fir,也可以用郵件通知給相關的開發人員和業務任務。 做一些簡單處理,輕輕松松。這部分內容到后面盡快整理,在寫一篇。
添加 github 項目到 travis-ci
- 進入 Travis 官網后,使用 GitHub 賬號 登錄,成功后:
。
- 點擊 加號 ,能看到你 GitHub 里面的所有:
, 如果沒有項目或者沒有你新建的項目,請點擊右上方的 Sync account 按鈕。
- 點擊這里:
,開啟 Travis 構建。點擊這個可以配置該項目:
- 默認是空的:
在 項目中添加 travis-ci 需要的 .travis.yml 文件
- 在項目根目錄下直接創建 一個 .travis.yml 的文件。
- 直接在文件里面添加代碼:
.travis.yml 文件 源代碼
language: android jdk: oraclejdk8 sudo: false android: components: - tools - build-tools-25.0.2 - android-25 - extra-android-m2repository - extra-android-support licenses: - android-sdk-license-.+ - '.+' before_install: - chmod +x gradlew - mkdir "$ANDROID_HOME/licenses" || true - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license" script: - ./gradlew assembleRelease
因為該文很長很長,所以暫時就不解釋具體含義了,可以看看官方文檔。
push 項目到 github, travis-ci 自動監測構建
- 提交到代碼,並 push 到 github。會自動觸發 Travis 的自動構建。
- 下面黑色部分是構建的過程:
, 黑框上的白色點點點擊后會變成綠色,會自動滾動到最下面。
喝一杯咖啡,慢慢等待吧,最難熬的時候已經過去,此刻是享受的時候了。
回到首頁刷新后,能看到:
說明我們已經構建成功了。
.travis.yml 需要注意的地方
初次使用 Travis 的試試,總遇到 說 android 的一些協議未接受而構建失敗,導致耗費了一兩天,曾經一度想放棄,但是最終堅持了下來,通過各種搜索,摸索,猜測,終於搞定。其實最初的項目是這個:https://github.com/gdky005/TestJitpack ,里面有很多辛酸史記錄,從提交記錄能看得出來,有興趣的可以研究研究,也許能解決你現在的問題。
Travis CI 協議問題解決方法:http://stackoverflow.com/questions/37615379/travis-ci-build-doesnt-work-with-android-constraint-layout
最重要部分在這里:
machine:
environment:
ANDROID_HOME: /usr/local/android-sdk-linux dependencies: pre: - mkdir -p "$ANDROID_HOME/licenses" - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"
添加 travis-ci 徽章到 github
激動的時刻再次到來,讓我們找找徽章在哪里呢?
讓我們來選擇 markdonw 格式:
並復制上。
同樣如上修改 readme.md。
加空格后,直接貼上去:
,這里需要說明的是,如果換成,圖標也會換行哦。這樣寫就能保證所有的圖標在一行了。
回到項目首頁以后就能發現:
添加 Travis 徽章成功。
Bye the way! 上面是最初級的構建過程,如果遇到單元測試就不行了,還得參考 我的開源項目 TestJitpack。 不過有點亂,后面整理下。
Circle CI 的使用
Circle CI 和 Travis CI 有什么區別?需要一起使用嗎?
Circle CI 相對來說比 Travis CI 好一些,至少界面上來說哈。還提供 ssh 的連接,構建過程相對來說 比較透明直觀。例如:
Travis CI 的文檔資料相對 Circle CI 來說 比較多, Circle CI 資料少之又少。
Travis CI 的使用率還是很高的, 不過 Circle CI 相對來說比較 年輕化,符合主流的科技感,更智能。
說到是否需要一起使用,其實都行,不過我在觀察 github 主流項目的時候 有不少項目都是同時使用的,多一個技能總沒有壞處吧。其實會了 Travis CI,在加 Circle CI 真是簡單不少呢,只是基本語法不太一樣。
添加項目到 Circle CI
- 登錄主頁面:
, 在 project 里面自己的賬號下搜索剛創建的項目。
- 一般直接選擇 Ubuntu 即可:
,點擊綠色 Build project.
- 能看到:
, 但是這次肯定會失敗,因為我們還沒有添加 Circle 需要的文件呢。
在 項目中添加 Circle CI 需要的 circle.yml 文件
- 在項目的根目錄下 添加 circle.yml 文件;
- 添加 circle 的代碼到文件中:
circle.yml 源代碼:
machine:
java: version: oraclejdk8 environment: ANDROID_HOME: /usr/local/android-sdk-linux dependencies: pre: - mkdir -p "$ANDROID_HOME/licenses" - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license" override: - echo y | android update sdk --no-ui --filter "android-25" - echo y | android update sdk --no-ui --filter "build-tools-25.0.2" - echo y | android update sdk --no-ui --filter "extra-android-m2repository" - echo y | android update sdk --no-ui --filter "extra-android-support" - echo y | android update sdk --no-ui --filter "extra-google-m2repositor" - ./gradlew dependencies || true test: override: - ./gradlew build
push 項目到 github, Circle CI 自動監測構建
- 提交代碼后,發布到 github,Circle CI 會自動執行。
-
點擊進來后,會看到:
, 說明已經開始 構建了, 下載需要的東西:
。
- 構建中的一些步驟:
, 相對 Travis 來說展示更直觀。
- 看到
說明構建成功。
添加 Circle CI 徽章到 github
我們再來把 Circle CI 的徽章找到,並添加到我們的 github 上去吧。
我們把 徽章的 markdown 鏈接拷貝下來放入到我們的 主項目頁面的里面。
回項目主頁刷新后:
非常 happy, 已經添加成功了。
接下來添加什么呢?
Github上許多開源項目都使用了Codecov來展示單元測試結果, 就它了。
Codecov 的使用
根據文中的指示:我們能看到一個開源的 github 項目https://github.com/codecov/example-android, 不過看起來點暈暈的,於是摸索了一段時間。
我們之后都直接使用 Trivas CI 構建了。
添加項目就不說了,進入后,點擊 project changes, 找到自己的項目:
,等生產報告后,進入該網站就能看見結果。
利用 Jacoco 生成報告
Codecov不支持自己生成Android的測試覆蓋率報告,它能做的是接收Jacoco生成的報告並進行可視化
1) 在 app 的 build.gradle 文件中 添加依賴
//Jacoco 生成報告的依賴 androidTestCompile('com.android.support.test:runner:0.5', { exclude group: 'com.android.support', module: 'support-annotations' }) // Set this dependency to use JUnit 4 rules androidTestCompile('com.android.support.test:rules:0.5', { exclude group: 'com.android.support', module: 'support-annotations' }) // Espresso-contrib for DatePicker, RecyclerView, Drawer actions, Accessibility checks, CountingIdlingResource androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' exclude group: 'com.android.support', module: 'support-v4' exclude group: 'com.android.support', module: 'appcompat-v7' exclude group: 'com.android.support', module: 'design' exclude group: 'com.android.support', module: 'recyclerview-v7' }) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' })
2) 在 需要構建測試覆蓋率報告的Module (AndroidBadge 項目中的 app) 的gradle文件中設置。
debug{
testCoverageEnabled true }
3) 可以在嘗試在本地生成報告:
./gradlew :app:createDebugAndroidTestCoverageReport 生成測試報告。 app 就是咱們項目中要測試的 module
測試報告地址:app/build/reports/coverage/debug/index.html。
上報數據給 Codecov
- 使用Github賬號登錄 https://codecov.io/, 並提供授權給該應用。
-
在.travis.yml文件中添加命令將測試覆蓋率報告上傳給Codecov。
after_success:
- bash <(curl -s https://codecov.io/bash)
Codecov 需要用到 單元測試,所以必須要在 配置文件中添加模擬器
因為之前修改過很多次,過程很繁瑣,直接給配置文件了,相信大家一眼就能看出來。
完整的配置文件是:
language: android jdk: oraclejdk8 sudo: false env: global: - ANDROID_API_LEVEL=25 - ANDROID_BUILD_TOOLS_VERSION=25.0.2 - ANDROID_ABI=armeabi-v7a - ANDROID_TAG=google_apis - ADB_INSTALL_TIMEOUT=20 # minutes (2 minutes by default) android: components: - platform-tools - tools # to install Android SDK tools 25.1.x - build-tools-$ANDROID_BUILD_TOOLS_VERSION - android-$ANDROID_API_LEVEL - sys-img-armeabi-v7a-google_apis-$ANDROID_API_LEVEL licenses: - android-sdk-license-.+ - '.+' before_install: - chmod +x gradlew - mkdir "$ANDROID_HOME/licenses" || true - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license" before_script: # Create and start emulator - echo no | android create avd --force -n test -t "android-"$ANDROID_API_LEVEL --abi $ANDROID_ABI --tag $ANDROID_TAG - emulator -avd test -no-skin -no-window & - android-wait-for-emulator - adb shell input keyevent 82 & script: - ./gradlew assembleRelease - ./gradlew :app:createDebugAndroidTestCoverageReport --info --stacktrace after_success: - bash <(curl -s https://codecov.io/bash)
codecov 總結
Travis-CI 對 android 的單元測試支持不是很好,因為需要開啟虛擬機,開啟這個過程就得10分鍾(我的測試時間),很耗費時間。有時候也連接不上,一次跑下來估計得個 20分鍾左右吧。所以,穩定性確實不是很高。如果不做單元測試,而只是做發布之類的,穩定性還是高的。
單元測試應都會吧, 這里檢測的標准就是說 每個類和方法都必須檢測到,否則就算沒有覆蓋。我這里也就簡單在項目中寫過例子,剩下的你們自己玩吧。
所以 要不要使用單元測試 還是根據項目決定吧。
獲取 codecov 的徽章
Api_Level 的使用
讓 codecov 慢慢構建吧,我們先繼續。
官網:https://android-arsenal.com/api
Api_Level 有什么用?
Api_Level 是 arsenal 網站給各位開發者的一個福利,我們的 android 開源項目一般都有一個最低的構建版本。平時我們都是在 md 文件中寫上 支持版本是 14+等很多樣式,但是 不夠醒目,有了 Api_Level 后,打開開源項目主頁就知道,最低版本是多少。 不用看文檔也能明白,輕松不少。 對應的 api 的一些特性和修改也能在這里展現。
Api_Level 怎么玩?
如果你的開源項目最低支持版本是:14,那么就選擇這里:
把這個拷貝下來,放入我們的 md 文檔中吧。
codacy 的使用
codacy 是什么?
codacy 編程代碼自動審查服務平台,可以幫我們分析存在的問題 或者說是 bug,主要包括代碼質量、語法規范、功能可用性方面的檢查。
codacy 怎么使用?
進入官網,添加自己的需要的 project。
完成后,等待一段時間就好了,會給你發郵件通知,已經完成。
完成后的效果是:
,咱們的這個項目評級是 B。
codacy 徽章呢?
拷貝下來,手動放到 咱們的項目的 md 文檔中把。比較放心一些,如果點擊后面的 add badge ,會自動加到項目中,需要我們 pull request 里面處理下。
搞定。
生成個性徽章
有什么用?
彰顯個人魅力,體現某種功能。例如咱們做一個跳轉到我的博客的 個人徽章。
怎么玩?
滾動網頁到最下面:
在對應的地方填寫相應的東西(也支持中文哦), 完成后點擊后面的 Make Badge 按鈕試試看。
我想我的個人圖標是這種淺藍色:
,那么我就在 color 中直接寫:7AD6FD
點擊生成 一個地址, 先保存下面。
這個原理是什么呢? (回答最開始的問題)
徽章的格式即是 markdown 的格式:
[\](D)
A 表示的頁面中需要顯示的內容, B 表示的是圖片的地址,D 表示的是點擊后需要跳轉的鏈接的地址。
合成我的個人專屬圖標吧
圖片地址是上面存下來的。 前面顯示內容:作者。按照上面的規范出來的結果就是:
[\](http:\//www.gdky005.com)
把這段代碼 粘貼到 我們的 md 文檔中,個性專屬徽章就出來了,而且點擊后能到我們想去的地方。
很酷吧,其實還可以做很多這樣的事情。
本文的 中的 項目地址是: https://github.com/gdky005/AndroidBadge
需要逐步了解項目的過程或者 根據步驟出現問題的話,可以check 對應的節點,看看代碼是否不同,然后自行修改,我特意保存了該進度。如果下圖中 git提交的記錄:
相信小伙伴們肯定能做出更有意思的東西,到時候記得與我和大家分享,比較有特色的,我會將你們的鏈接掛載到 github 項目里面。
因為該文真的很長,涉及到很多的技術,所以專門設立了 QQ群:621094999, 有需要幫助或許分享新技能的小伙伴請進入。
本文完整地址請在 我的博客 里面查看,會修復 文章存在的問題,並補充一些相關細節。針對 小伙伴們提出的問題,將在博客中修改和增加。如果大家覺得不錯,並且很喜歡的話,麻煩 GitHub 中 start 下,不勝感激。
最后真想說一句
咱們不玩虛的,玩點有技術含量的東西。
