主頁 > 移動端開發 > Android 常用的第三方框架和組件

Android 常用的第三方框架和組件

2021-04-10 10:46:50 移動端開發

記一些專案中遇到的第三方組件或框架,如果以下條目有更好的替代品,歡迎提出!Star and Respect All!

由于推薦條目過多,本文將不再更新,以后的更新會在GitHub上進行,本文內容已在GitHub上建立倉庫Android-All-Star/GitHub Pages,

如果你有好的開源專案推薦或者你就是開源專案的開發者,歡迎分享!

如果本文推薦的開源庫已經廢棄或者存在過多BUG而不再被推薦使用,歡迎提出!

條目詳細格式如下:

框架/組件       //框架或組件的Github地址,點擊查看
GitHub 🌟:    //GitHub star星數
專案簡介:      //框架或組件的簡介
專案參考Blog:  //框架或組件可以參考如何使用的Blog
專案使用        //配置或添加框架、組件依賴
    implementation 'xx.xxx:xxx:x.x.x'

界面

圖片

android-gif-drawable

專案簡介:Views and Drawable for displaying animated GIFs on Android

GitHub 🌟:8.7k

專案參考Blog:android-gif-drawable教程

專案引入

    dependencies {
        ...
        implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.22'
    }

CircleImageView

專案簡介:A fast circular ImageView perfect for profile images.

GitHub 🌟:13.8k

專案參考Blog:Android之CircleImageView使用(原創)

專案引入

    dependencies {
        ...
        implementation 'de.hdodenhof:circleimageview:3.1.0'
    }

RoundedImageView

專案簡介:A fast ImageView that supports rounded corners, ovals, and circles.

GitHub 🌟:6.2k

專案參考Blog:Android 第三方RoundedImageView設定各種圓形、方形頭像

專案引入

    dependencies {
        ...
        implementation 'com.makeramen:roundedimageview:2.3.0'
    }

PhotoView

專案簡介:Implementation of ImageView for Android that supports zooming, by various touch gestures.

GitHub 🌟:17.6k

專案參考Blog:Android UI Libs之PhotoView

專案引入

    implementation 'com.github.chrisbanes:PhotoView:latest.release.here'

Add this in your root build.gradle file (not your module build.gradle file):

    allprojects {
       repositories {
          jcenter()
          maven { url 'https://jitpack.io' }
       }
    }
    buildscript {
        repositories {
          maven { url "https://www.jitpack.io" }
       }	
    }

subsampling-scale-image-view

專案簡介:Android library (AAR). Highly configurable, easily extendable deep zoom view for displaying huge images without loss of detail.

GitHub 🌟:6.7k

專案參考Blog:Subsampling Scale Image View WiKi

專案引入

    dependencies {
        ...
        implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0' // for support lib
        implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0' // for androidx
    }

uCrop

專案簡介:Image Cropping Library for Android

GitHub 🌟:10.6k

專案參考Blog:Android7.0拍照以及使用uCrop裁剪

專案引入

    dependencies {
        ...
        implementation 'com.github.yalantis:ucrop:2.2.6' //lightweight general solution
		implementation 'com.github.yalantis:ucrop:2.2.6-native' //get power of the native code to preserve image quality (+ about 1.5 MB to an apk size)
    }

PictureSelector

專案簡介:Picture Selector Library for Android or 多圖片選擇器

GitHub 🌟:10.1k

專案參考Blog:Android 選擇圖片、上傳圖片之PictureSelector

專案引入

    implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0'
    allprojects {
       repositories {
          jcenter()
          maven { url 'https://jitpack.io' }
       }
    }

文本

richeditor-android

專案簡介:RichEditor for Android is a beautiful Rich Text WYSIWYG Editor for Android.

GitHub 🌟:5.4k

專案參考Blog:移動端強大的富文本編輯器richeditor-android

專案引入

	repositories {
  		mavenCentral()
	}

    dependencies {
        ...
        implementation 'jp.wasabeef:richeditor-android:2.0.0'
    }

TextSurface

專案簡介:A little animation framework which could help you to show message in a nice looking way

GitHub 🌟:2.1k

專案參考Blog:一個Android文字展示影片框架:TextSurface

專案引入

	repositories {
    	maven { url "https://jitpack.io" }
	}
    dependencies {
        ...
        implementation 'com.github.elevenetc:textsurface:0.9.1'
    }

彈窗

BaseDialog

專案簡介:Android BaseDialog(開發必備)影片、加載進度、陰影、上下左右中 進入

GitHub 🌟:163

專案參考Blog:Android BaseDialog(開發必備)影片、加載進度、陰影

專案引入

    implementation 'com.github.AnJiaoDe:BaseDialog:V1.1.8'
    allprojects {
       repositories {
          jcenter()
          maven { url 'https://jitpack.io' }
       }
    }

material-dialogs

專案簡介:😍 A beautiful, fluid, and extensible dialogs API for Kotlin & Android.

GitHub 🌟:18.7k

專案參考Blog:material-dialogs/documentation

專案引入

    dependencies {
        ...
        implementation 'com.afollestad.material-dialogs:core:3.3.0'
    }

Toasty

專案簡介:The usual Toast, but with steroids 💪

GitHub 🌟:6.1k

專案參考Blog:Usage

專案引入

    dependencies {
        ...
        implementation 'com.github.GrenderG:Toasty:1.5.0'
    }

狀態欄

ImmersionBar

專案簡介:Android 4.4以上沉浸式狀態欄和沉浸式導航欄管理

GitHub 🌟:9.5k

專案參考Blog:android4.4以上沉浸式狀態欄和導航欄實作以及Bar的其他管理

專案引入

    dependencies {
        ...
        // 基礎依賴包,必須要依賴
		implementation 'com.gyf.immersionbar:immersionbar:3.0.0'
		// fragment快速實作(可選)
		implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0'
		// kotlin擴展(可選)
		implementation 'com.gyf.immersionbar:immersionbar-ktx:3.0.0'
    }

輪播圖

banner

專案簡介:只做一個可以自定義的輪播容器,不侵入UI ———— Banner 2.0

GitHub 🌟:11.1k

專案參考Blog:Banner2.0 GitHub介紹

專案引入

    implementation 'com.youth.banner:banner:2.1.0'

指示器

MagicIndicator

專案簡介:強大、可定制、易擴展的 ViewPager 指示器框架,是ViewPagerIndicator、TabLayout、PagerSlidingTabStrip的最佳替代品

GitHub 🌟:8.6k

專案參考Blog:MagicIndicator系列之一 —— 使用MagicIndicator打造千變萬化的ViewPager指示器

專案引入

    repositories {
        ...
        maven {
            url "https://jitpack.io"
        }
    }

    dependencies {
        ...
        implementation 'com.github.hackware1993:MagicIndicator:1.6.0' // for support lib
        implementation 'com.github.hackware1993:MagicIndicator:1.7.0' // for androidx
    }

圖表

MPAndroidChart

專案簡介:A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

GitHub 🌟:33.1k

專案參考Blog:detailed video tutorials(付費視頻)、MPAndroidChart Documentation

專案引入

    repositories {
        ...
        maven {
            url "https://jitpack.io"
        }
    }

    dependencies {
    	implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
    }

TableView

專案簡介:TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells

GitHub 🌟:2.8k

專案參考Blog:Welcome to the Documentation of the TableView library

專案引入

	dependencies {
    	implementation 'com.evrencoskun.library:tableview:0.8.9.4'
	}

角標

BGABadgeView-Android

專案簡介:Android 徽章控制元件

GitHub 🌟:2.4k

專案參考Blog:初始化徽章控制元件

專案引入

	//把 maven { url 'https://jitpack.io' } 加入到 repositories 中
	repositories {
    	maven { url "https://jitpack.io" }
	}
	
    dependencies {
        ...
        implementation 'com.github.bingoogolapple.BGABadgeView-Android:api:latestVersion'
    	annotationProcessor 'com.github.bingoogolapple.BGABadgeView-Android:compiler:latestVersion'
    }

選擇器

Android-PickerView

專案簡介:This is a picker view for android , support linkage effect, timepicker and optionspicker.(時間選擇器、省市區三級聯動)

GitHub 🌟:12.7k

專案參考Blog:PickerView–仿ios滾輪時間選擇、城市選擇效果

專案引入

    implementation 'com.contrarywind:Android-PickerView:4.1.9'

歡迎頁

AppIntro

專案簡介:Make a cool intro for your Android app.

GitHub 🌟:9.7k

專案參考Blog:Basic usage

專案引入

	repositories {
    	maven { url "https://jitpack.io" }
	}

    dependencies {
        ...
        implementation 'com.github.AppIntro:AppIntro:4.2.3' // for support lib
        implementation 'com.github.AppIntro:AppIntro:6.1.0' // for androidx
    }

選單

MaterialDrawer

專案簡介:The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design

GitHub 🌟:11.3k

專案參考Blog:Android, Using Navigation Drawer Across Multiple Activities: The easiest way.

專案引入

    implementation "com.mikepenz:materialdrawer:${lastestMaterialDrawerRelease}"

	//required support lib modules
	implementation "androidx.appcompat:appcompat:${versions.appcompat}"
	implementation "androidx.recyclerview:recyclerview:${versions.recyclerView}"
	implementation "androidx.annotation:annotation:${versions.annotation}"
	implementation "com.google.android.material:material:${versions.material}"
	implementation "androidx.constraintlayout:constraintlayout:${versions.constraintLayout}"

	// Add for NavController support
	implementation "com.mikepenz:materialdrawer-nav:${lastestMaterialDrawerRelease}"

	// Add for Android-Iconics support
	implementation "com.mikepenz:materialdrawer-iconics:${lastestMaterialDrawerRelease}"

日歷

CalendarView

專案簡介:Android上一個優雅、萬能自定義UI、支持周視圖、自定義周起始、性能高效的日歷控制元件,支持熱插拔實作的UI定制!

GitHub 🌟:7.5k

專案參考Blog:CalendarView使用詳細檔案

專案引入

    dependencies {
        ...
        implementation 'com.haibin:calendarview:3.6.8' // for support lib
        implementation 'com.haibin:calendarview:3.7.1' // for androidx
    }

高斯模糊

blurkit-android

專案簡介:Android上一個優雅、萬能自定義UI、支持周視圖、自定義周起始、性能高效的日歷控制元件,支持熱插拔實作的UI定制!

GitHub 🌟:3.4k

專案參考Blog:Usage

專案引入

    dependencies {
        ...
        implementation 'io.alterac.blurkit:blurkit:1.1.0'
    }

webview

AgentWeb

專案簡介:AgentWeb is a powerful library based on Android WebView.

GitHub 🌟:8k

專案參考Blog:WebView 性能和用戶體驗優化

專案引入

    dependencies {
        ...
        implementation 'com.just.agentweb:agentweb:4.1.4' // (必選)
		implementation 'com.just.agentweb:filechooser:4.1.4'// (可選)
		implementation 'com.download.library:Downloader:4.1.4'// (可選) // for support lib
		
        implementation 'com.just.agentweb:agentweb-androidx:4.1.4' // (必選)
		implementation 'com.just.agentweb:filechooser-androidx:4.1.4'// (可選)
		implementation 'com.download.library:downloader-androidx:4.1.4'// (可選) // for androidx
    }

通信

ARouter

專案簡介:一個用于幫助 Android App 進行組件化改造的框架 —— 支持模塊間的路由、通信、解耦

GitHub 🌟:13k

專案參考Blog:ARouter/README_CN.md

專案引入

    android {
        defaultConfig {
            ...
            javaCompileOptions {
                annotationProcessorOptions {
                    arguments = [AROUTER_MODULE_NAME: project.getName()]
                }
            }
        }
    }

    dependencies {
        // 替換成最新版本, 需要注意的是api
        // 要與compiler匹配使用,均使用最新版可以保證兼容
        compile 'com.alibaba:arouter-api:x.x.x'
        annotationProcessor 'com.alibaba:arouter-compiler:x.x.x'
        ...
    }
    // 舊版本gradle插件(< 2.2),可以使用apt插件,配置方法見文末'其他#4'
    // Kotlin配置參考文末'其他#5'

EventBus

專案簡介:Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality

GitHub 🌟:23.3k

專案參考Blog:Android EventBus 的使用

專案引入

  implementation 'org.greenrobot:eventbus:3.2.0'

布局

vlayout

專案簡介:Project vlayout is a powerfull LayoutManager extension for RecyclerView, it provides a group of layouts for RecyclerView. Make it able to handle a complicate situation when grid, list and other layouts in the same recyclerview.

GitHub 🌟:10.7k

專案參考Blog:vlayout–讓你的多布局不再頭疼

專案引入

    implementation ('com.alibaba.android:vlayout:1.2.8@aar') {
	    transitive = true
    }

AndroidAutoSize

專案簡介:🔥 A low-cost Android screen adaptation solution (今日頭條螢屏適配方案終極版,一個極低成本的 Android 螢屏適配方案).

GitHub 🌟:11.3k

專案參考Blog:今日頭條螢屏適配方案終極版,一個極低成本的 Android 螢屏適配方案.

專案引入

    dependencies {
        ...
        implementation 'me.jessyan:autosize:1.2.1'
    }

其它

BaseRecyclerViewAdapterHelper

專案簡介:BRVAH:Powerful and flexible RecyclerAdapter

GitHub 🌟:21.7k

專案參考Blog:BRVAH官網

專案引入

    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'

MultiLanguages

專案簡介:Android 多語言切換(兼容8.0+) 2.0版本,一句代碼完成多語言切換,現在支持第三方包里多語言切換(前提是有對應的語言資源)

GitHub 🌟:300

專案參考Blog:MultiLanguages/README_cn.md

專案引入

在APP的build.gradle檔案下引入gradle plugin

    buildscript {
        dependencies {
            classpath 'com.github.jokar:multi-languages.plugin:<latest-version>'
        }
    }

在模塊的build.gradle檔案中引入plugin

    apply plugin: 'multi-languages'
    ...
    android{
        defaultConfig { 
            multiLanguages {
                //set plugin is enable( default)
                enable = true
            }
        }
    }
    ...
    dependencies {
        implementation 'com.github.jokar:multi-languages:<latest-version>'
    }
    

QMUI_Android

專案簡介:提高 Android UI 開發效率的 UI 庫

GitHub 🌟:12.8k

專案參考Blog:QMUI_Android官網

專案引入

	//最新的庫會上傳到 JCenter 倉庫上,請確保配置了 JCenter 倉庫源
    dependencies {
        ...
        implementation 'com.qmuiteam:qmui:2.0.0-alpha10'
    }

SmartRefreshLayout

專案簡介:🔥下拉重繪、上拉加載、二級重繪、淘寶二樓、RefreshLayout、OverScroll,Android智能下拉重繪框架,支持越界回彈、越界拖動,具有極強的擴展性,集成了幾十種炫酷的Header和 Footer

GitHub 🌟:22.4k

專案參考Blog:Android智能下拉重繪框架-SmartRefreshLayout

專案引入

如果使用 AndroidX 先在 gradle.properties 中添加,兩行都不能少噢~

    android.useAndroidX=true
    android.enableJetifier=true

需要依賴 androidx.appcompat

    implementation 'androidx.appcompat:appcompat:1.0.0'                 //必須 1.0.0 以上

    implementation  'com.scwang.smart:refresh-layout-kernel:2.0.3'      //核心必須依賴
    implementation  'com.scwang.smart:refresh-header-classics:2.0.3'    //經典重繪頭
    implementation  'com.scwang.smart:refresh-header-radar:2.0.3'       //雷達重繪頭
    implementation  'com.scwang.smart:refresh-header-falsify:2.0.3'     //虛擬重繪頭
    implementation  'com.scwang.smart:refresh-header-material:2.0.3'    //谷歌重繪頭
    implementation  'com.scwang.smart:refresh-header-two-level:2.0.3'   //二級重繪頭
    implementation  'com.scwang.smart:refresh-footer-ball:2.0.3'        //球脈沖加載
    implementation  'com.scwang.smart:refresh-footer-classics:2.0.3'    //經典加載

圖片

圖片加載

Glide

專案簡介:An image loading and caching library for Android focused on smooth scrolling

GitHub 🌟:31k

專案參考Blog:Glide使用總結

專案引入

      implementation 'com.github.bumptech.glide:glide:4.12.0'
      annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

fresco

專案簡介:An Android library for managing images and the memory they use.

GitHub 🌟:16.5k

專案參考Blog:Fresco中文檔案

專案引入

    dependencies {
        ...
        implementation 'com.facebook.fresco:fresco:2.4.0'
    }

Android-Universal-Image-Loader

專案簡介:Powerful and flexible library for loading, caching and displaying images on Android.

GitHub 🌟:16.8k

專案參考Blog:Home

專案引入

    dependencies {
        ...
        implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
    }

圖片處理

glide-transformations

專案簡介:An Android transformation library providing a variety of image transformations for Glide.

GitHub 🌟:9.3k

專案參考Blog:Glide-更多圖片變換,glide-transformations的使用(六)

專案引入

	repositories {
  		mavenCentral()
	}

    dependencies {
        ...
        implementation 'jp.wasabeef:glide-transformations:4.3.0'
  		// If you want to use the GPU Filters
  		implementation 'jp.co.cyberagent.android:gpuimage:2.1.0'

    }

Luban

專案簡介:Luban(魯班)—Image compression with efficiency very close to WeChat Moments/可能是最接近微信朋友圈的圖片壓縮演算法

GitHub 🌟:12.4k

專案參考Blog:Android 圖片壓縮之-Luban的使用

專案引入

    dependencies {
        ...
        implementation 'top.zibin:Luban:1.1.8'
    }

android-gpuimage

專案簡介:Android filters based on OpenGL (idea from GPUImage for iOS)

GitHub 🌟:7.8k

專案參考Blog:Usage

專案引入

	repositories {
    	mavenCentral()
	}
	
    dependencies {
        ...
        implementation 'jp.co.cyberagent.android:gpuimage:2.x.x'
    }

視頻

播放器

ijkplayer

專案簡介:Android上一個優雅、萬能自定義UI、支持周視圖、自定義周起始、性能高效的日歷控制元件,支持熱插拔實作的UI定制!

GitHub 🌟:28.5k

專案參考Blog:Android 超好用的播放器——ijkplayer

專案引入

	allprojects {
    	repositories {
        	jcenter()
    	}
	}

    dependencies {
    # required, enough for most devices.
    implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'

    # Other ABIs: optional
    implementation 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'

    # ExoPlayer as IMediaPlayer: optional, experimental
    implementation 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'
}

GSYVideoPlayer

專案簡介:視頻播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持彈幕,外掛字幕,支持濾鏡、水印、gif截圖,片頭廣告、中間廣告,多個同時播放,支持基本的拖動,聲音、亮度調節,支持邊播邊快取,支持視頻自帶rotation的旋轉(90,270之類),重力旋轉與手動旋轉的同步支持,支持串列播放 ,串列全屏影片,視頻加載速度,串列小視窗支持拖動,影片效果,調整比例,多解析度切換,支持切換播放器,進度條小視窗預覽,串列切換詳情頁面無縫播放,rtsp、concat、mpeg,

GitHub 🌟:16k

專案參考Blog:三種簡單的使用方法

專案引入

    dependencies {
        ...
        //A.完整版引入
		implementation 'com.shuyu:GSYVideoPlayer:8.1.2'
		
		//B.添加java和你想要的so支持
		implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'

		//是否需要ExoPlayer模式
		implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'

		//根據你的需求ijk模式的so
		implementation 'com.shuyu:gsyVideoPlayer-armv5:8.1.2'
		implementation 'com.shuyu:gsyVideoPlayer-armv7a:8.1.2'
		implementation 'com.shuyu:gsyVideoPlayer-arm64:8.1.2'
		implementation 'com.shuyu:gsyVideoPlayer-x64:8.1.2'
		implementation 'com.shuyu:gsyVideoPlayer-x86:8.1.2'
		
		//C.支持其他格式協議的(mpeg,rtsp, concat、crypto協議)
		//A、B普通版本支持263/264/265等,對于mpeg編碼會有聲音無畫面情況, C 引入的so支持mpeg編碼和其他補充協議,但是so包相對變大,
		implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'

		//是否需要ExoPlayer模式
		implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'

		//更多ijk的編碼支持
		implementation 'com.shuyu:gsyVideoPlayer-ex_so:8.1.2'
    }

網路

json

gson

專案簡介:A Java serialization/deserialization library to convert Java Objects into JSON and back

GitHub 🌟:19.4k

專案參考Blog:GSON

專案引入

    implementation 'com.google.code.gson:gson:2.8.6'

fastjson

專案簡介:A fast JSON parser/generator for Java.

GitHub 🌟:23.2k

專案參考Blog:Quick Start CN

專案引入

    dependencies {
        ...
        implementation 'com.alibaba:fastjson:1.1.72.android'
    }

框架

retrofit

專案簡介:A type-safe HTTP client for Android and Java.

GitHub 🌟:37.9k

專案參考Blog:Retrofit官網

專案引入

    implementation 'com.squareup.retrofit2:retrofit:(insert latest version)'

okhttp

專案簡介:Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

GitHub 🌟:39.7k

專案參考Blog:OkHttp

專案引入

    dependencies {
        ...
        implementation("com.squareup.okhttp3:okhttp:4.9.1")
    }

volley

專案簡介:Volley is an HTTP library that makes networking for Android apps easier and, most importantly, faster.

GitHub 🌟:3k

專案參考Blog:Android Volley使用(一)Volley的基本用法

專案引入

    dependencies {
        ...
        implementation 'com.android.volley:volley:1.2.0'
    }

Java-WebSocket

專案簡介:A barebones WebSocket client and server implementation written in 100% Java.

GitHub 🌟:7.9k

專案參考Blog:java WebSocket開發入門WebSocket

專案引入

    dependencies {
        ...
        implementation 'org.java-websocket:Java-WebSocket:1.5.1'
    }

檔案下載

FileDownloader

專案簡介:Android 檔案下載引擎,穩定、高效、靈活、簡單易用

GitHub 🌟:10.1k

專案參考Blog:FileDownloader

專案引入

    dependencies {
        ...
        implementation 'com.liulishuo.filedownloader:library:1.7.7'
    }

okdownload

專案簡介:可靠,靈活,高性能以及強大的下載引擎,

GitHub 🌟:4.2k

專案參考Blog:Simple Use Guideline

專案引入

    dependencies {
        ...
        // core
		com.liulishuo.okdownload:okdownload:{latest_version}
		// provide sqlite to store breakpoints
		com.liulishuo.okdownload:sqlite:{latest_version}
		// provide okhttp to connect to backend
		// and then please import okhttp dependencies by yourself
		com.liulishuo.okdownload:okhttp:{latest_version}
		// provide interface to match filedownloader
		com.liulishuo.okdownload:filedownloader:{latest_version}
		// provide interface for kotlin extension
		com.liulishuo.okdownload:ktx{latest_version}
    }

PRDownloader

專案簡介:A file downloader library for Android with pause and resume support

GitHub 🌟:2.8k

專案參考Blog:安卓檔案下載庫 | PRDownloader

專案引入

    dependencies {
        ...
        implementation 'com.mindorks.android:prdownloader:0.6.0'
    }

存盤

MMKV

專案簡介:MMKV 是基于 mmap 記憶體映射的 key-value 組件,底層序列化/反序列化使用 protobuf 實作,性能高,穩定性強,可以替代SharedPreferences

GitHub 🌟:12.4k

專案參考Blog:MMKV——1.使用、MMKV——2.原理

專案引入

       implementation 'com.tencent:mmkv-static:1.2.7'
       // replace "1.2.7" with any available version

優化

leakcanary

專案簡介:A memory leak detection library for Android

GitHub 🌟:25.9k

專案參考Blog:LeakCanary官網

專案引入

      // debugImplementation because LeakCanary should only run in debug builds.
      debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'

日志

logger

專案簡介:Simple, pretty and powerful logger for android

GitHub 🌟:12.1k

專案參考Blog:Android 日志記錄雜談-Logger,Timber,logback-android

專案引入

  implementation 'com.orhanobut:logger:2.2.0'

timber

專案簡介:A logger with a small, extensible API which provides utility on top of Android’s normal Log class.

GitHub 🌟:8.8k

專案參考Blog:1.Timber: Android日志記錄 2.Android 日志記錄雜談-Logger,Timber,logback-android

專案引入

  implementation 'com.jakewharton.timber:timber:4.7.1'

權限

PermissionX

專案簡介:PermissionX is an extension Android library that makes Android runtime permission request extremely easy

GitHub 🌟:1.6k

專案參考Blog:PermissionX-作者:guolin

專案引入

  implementation 'com.permissionx.guolindev:permissionx:1.4.0'

不再推薦

以下條目是因GitHub更新時間過久已停止維護有更好替代品等原因被推薦替換的專案

GitHub更新時間過久:GitHub上次更新時間過久,作者可能已經放棄維護,使用時可能會產生BUG,請謹慎考慮使用

已停止維護:作者已明確宣告專案停止維護,不再提供功能更新、BUG修復,不推薦使用此類專案

有更好替代品:此類專案仍然推薦使用,但有更好的開源框架或者官方庫可以替代

條目詳細格式如下:

框架/組件           //框架或組件的Github地址,點擊查看
GitHub 🌟:        //GitHub star星數
GitHub更新時間      //GitHub上次更新時間
Releases最新版本:  //GitHub上最新的Releases版本
不再推薦原因:         //因某種原因,推薦使用其它框架或組件替換
替代框架:          //推薦使用的替代框架或組件

AndroidEventBus

GitHub 🌟:1.6k

GitHub更新時間:2018年3月

Releases最新版本:2015年5月 Version-1.0.4

不推薦原因:已停止維護[DEPRECATED]

替代框架:無

BadgeView

GitHub 🌟:3.9k

GitHub更新時間:2017年4月

Releases最新版本:2017年9月 Version-1.1.3

不推薦原因:已停止維護[DEPRECATED]

替代框架:無

ButterKnife

GitHub 🌟:25.7k

GitHub更新時間:2020年9月

Releases最新版本:2020年8月 Version-10.2.3

不推薦原因:已停止維護[DEPRECATED]

替代框架:官方JetPack庫的DataBinding、官方的ViewBinding

CardSwipeLayout

GitHub 🌟:1.1k

GitHub更新時間:2017年3月

Releases最新版本:無Release版本

不推薦原因:GitHub更新時間過久

替代框架:無

greenDAO

GitHub 🌟:12.4k

GitHub更新時間:2021年2月

Releases最新版本:2020年5月 Version-3.3.0

不推薦原因:使用比較復雜,有更好替代品

替代框架:官方JetPack庫的Room、郭霖大神的LitPal

MVPArms

GitHub 🌟:10k

GitHub更新時間:2020年6月

Releases最新版本:2019年7月 Version-2.5.2

不推薦原因:有更好的替代品

替代框架:官方推薦的MVVM架構,配合JetPack可以很輕松搭建MVVM架構,使用官方JetPack庫搭建MVVM架構

NineOldAndroids

GitHub 🌟:4.5k

GitHub更新時間:2014年10月

Releases最新版本:2012年6月 Version-2.4.0

不推薦原因:已停止維護[DEPRECATED]

替代框架:無

NumberProgressBar

GitHub 🌟:5.9k

GitHub更新時間:2017年7月

Releases最新版本:2014年8月 Version-1.2

不推薦原因:GitHub更新時間過久

替代框架:無

picasso

GitHub 🌟:17.9k

GitHub更新時間:2020年9月

Releases最新版本:2020年8月 Version-2.8

不推薦原因:有更好的替代品

替代框架:Glide

ViewPagerIndicator

GitHub 🌟:368

GitHub更新時間:2019年8月

Releases最新版本:2019年8月 Version-0.3.0

不推薦原因:有更好的替代品

替代框架:MagicIndicatorhttps://github.com/hackware1993/MagicIndicator)

Matisse

GitHub 🌟:11.9

GitHub更新時間:2019年10月

Releases最新版本:2019年8月 Version-0.3.0

不推薦原因:已停止維護[DEPRECATED]

替代框架:PictureSelector

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/274426.html

標籤:其他

上一篇:js 識別設備 安卓 ios html確定打開終端(安卓、ios、微信)

下一篇:dell筆記本怎么安裝ubuntu和windows雙作業系統

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more