Skip to content

Latest commit

 

History

History
1066 lines (754 loc) · 63.6 KB

OpenResources.md

File metadata and controls

1066 lines (754 loc) · 63.6 KB

[TOC]

开源项目搜索

开源项目收集

工具类集合

  • 一套快速高效的Android集成开发框架EasyAndroid

  • vondear/RxTools

    Android开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | 一键集成UCrop选择圆形头像 | 一键集成二维码和条形码的扫描与生成 | 常用Dialog | WebView的封装可播放视频 | 仿斗鱼滑动验证码 | Toast封装 | 震动 | GPS | Location定位 | 压缩与加密 | 图片缩放 | Exif 图片添加地理位置信息(经纬度) | 编译运行一下说不定会找到惊喜

  • AndroidUtilCode

    Android developers should collect the following utils(updating) http://www.jianshu.com/p/72494773aace

  • RJcenter

    常用公共类, Android 开源项目, 开发工具, 开发框架, 开发库整理; 牛人推荐整理; http://angcyo.github.io/

  • AndroidRapidDevelopLibrarys

    Android快速开发资源库

  • Android-ZBLibrary

    Android快速开发框架,MVP架构,丰富的功能、简单的实现、详细的注释、规范的风格。OKHttp、UIL图片加载、ZXing二维码、沉浸状态栏、下载安装、自动缓存以及各种Base、Demo、UI、Util直接用。全新的手势,侧滑返回、全局右滑返回都OUT啦!BaseHttpListActivity,几行代码搞定http请求列表 加载和缓存;BaseView,自定义View竟然如此简单;万能的Entry<K, V>,两个变量的Model/JavaBean再也不用写了;100多个常用style,一行搞定View属性,一键统一配置UI...

  • android-common

    Android Common Utils or Helper. Such as Log, Averager, Base64, Check, FlashLight, KeyguardLock, LogReader, Network, SilentInstaller, TimeAverager, TimeCounter, Toastor, WakeLock, ScreenReceiver, SmsReceiver, PhoneReceiver, NotificationService, AndroidUtil, AppUtil, BitmapUtil, ByteUtil, ClassUtil, DialogUtil, FieldUtil, FileUtil, HexUtil, MD5Uti…

  • QMUI/QMUI_Android

    提高 Android UI 开发效率的 UI 库 http://qmuiteam.com/android

UI适配

UI

Layer-list

Dialog

ProgressBar

  • NumberProgressBar

    A beautiful, slim Android ProgressBar.

  • RingProgressBar

  • DownloadProgressBar

    DownloadProgressBar is an android library that delivers awesome custom progress bar. You can manipulate it's state in every way.

  • HorizontalProgress

    带文字描述,可滑动,可动态添加节点的横向时间轴

    效果图

  • ZzHorizontalProgressBar

    功能简介:
    1.支持自定义进度颜色;
    2.支持自定义背景颜色;
    3.支持自定义背景与进度之间的内间距大小;
    4.支持自定义最大值和默认进度值。
    与系统控件相比的优势:属性配置更简单、大小适配更方便。

  • Progress

    This contains two kinds of ProgressBar, a Horizontal kind and a cirle kind.

  • LearnProgressBar

    Android custom horizontal and circle progressBar

ProgressDialog

BottomDialog

Popwindow

  • [kareluo/PopupMenuView](A view just like UIMenuController of iOS, 一个类似iOS中弹框气泡菜单的控件 )

  • pinguo-zhouwei/CustomPopwindow

    对PopupWindow常用API的简单封装,几行代码就搞定PopupWindow弹窗,使用Builder模式,链式调用,像使用AlertDialog 一样

  • shalskar/PeekAndPop

  • goweii/AnyLayer

    用于替代Android自带Dialog和PopupWindow

  • goweii/AnyDialog

    Android高定制性,高易用性Dialog

APP更新进度条

  • AppUpdateProgress

    现在一般的Android软件都是需要不断更新的,当你打开某个app的时候,如果有新的版本,它会提示你有新版本需要更新。当有更新时,会弹出一个提示框,点击下载,则在通知来创建一个数字进度条进行下载,下载成功后才到安装界面。

  • AppUpdate

    App a key update, only a simple code to achieve the update and progress shows that support for mandatory updates

梯度进度条

下拉刷新/refresh

RecyclerView

  • alibaba/vlayout

    VirtualLayout是阿里最近(2017.2)开源的一个用来辅助RecyclerView的LayoutManager扩展库,通过使用里面的LayoutHelper,我们可以轻松的使用一些比较复杂的布局,如:线性布局、Grid布局、固定布局、浮动布局、栏格布局、通栏布局、一拖N布局、一拖N布局、瀑布流布局。还可以组合使用这些布局。天猫APP里面的一些商品布局就是用到这个库。

  • CymChad/BaseRecyclerViewAdapterHelper

    功能简介:
    1、优化Adapter代码(减少百分之70%代码)
    2、添加点击item点击、长按事件、以及item子控件的点击事件
    3、添加加载动画(一行代码轻松切换5种默认动画)
    4、添加头部、尾部、下拉刷新、上拉加载(感觉又回到ListView时代)
    5、设置自定义的加载更多布局
    6、添加分组(随心定义分组头部)
    7、自定义不同的item类型(简单配置、无需重写额外方法)
    8、设置空布局(比Listview的setEmptyView还要好用!)
    9、添加拖拽item

  • hongyangAndroid/baseAdapter

    Android 万能的Adapter for ListView,RecyclerView,GridView等,支持多种Item类型的情况。

  • gabrielemariotti/RecyclerViewItemAnimators

    An Android library which provides simple Item animations to RecyclerView items

Item

  • drakeet/Effective-MultiType

    An Android library to create multiple item types list views easily and flexibly 在开发我的 TimeMachine 时,我有一个复杂的聊天页面,于是我设计了我的类型池系统,它是完全解 耦的,我能够轻松将它抽离出来分享,并给它取名为 MultiType.

    从前,比如我们写一个类似微博列表页面,这样的列表是十分复杂的:有纯文本的、带转发原文的、带图片>的、带视频的、带文章的等等,甚至穿插一条可以横向滑动的好友推荐条目。不同的 item 类型众多,而且随 着业务发展,还会更多。如果我们使用传统的开发方式,经常要做一些繁琐的工作,代码可能都堆积在一个 >Adapter 中:我们需要覆写 RecyclerView.Adapter 的 getItemViewType 方法,罗列一些 type 整型常量,并且 ViewHolder 转型、绑定数据也比较麻烦。一旦产品需求有变,或者产品设计说需要增加一种新的 item 类型,我们需要去代码堆里找到原来的逻辑去修改,或找到正确的位置去增加代码。这些过程都比较繁琐,侵入较强,需要小心翼翼,以免改错影响到其他地方。

    现在好了,我们有了 MultiType,简单来说,MultiType 就是一个多类型列表视图的中间分发框架,它能帮助你快速并且清晰地开发一些复杂的列表页面,数据驱动视图。 它本是为聊天页面开发的,聊天页面的消息类型也是有大量不同种类,且新增频繁,而 MultiType 能够轻松胜任。

    MultiType 以灵活直观为第一宗旨进行设计,它内建了 类型 - View 的复用池系统,支持 RecyclerView,随时可拓展新的类型进入列表当中,使用简单,令代码清晰、模块化、灵活可变。

    因此,我写了这篇文章,目的有几个:一是以作者的角度对 MultiType 进行入门和进阶详解。二是传递我开发过程中的思想、设计理念,这些偏细腻的内容,即使不使用 MultiType,想必也能带来很多启发。最后就是把自我觉得不错的东西分享给大家,试想如果你制造的东西很多人在用,即使没有带来任何收益,也是一件很自豪的事情。

ViewPager

  • alibaba/UltraViewPager

    UltraViewPager is an extension for ViewPager to provide multiple features in a single ViewPager.

Shinning效果

sharish/ShimmerRecyclerView

状态布局

KingJA/LoadSir

可拖拽ListView

可拖拽Pannel

  • pedrovgs/DraggablePanel

    Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component.

可拖拽tag

粘性列表头部实现

Tablayout

StatusBar(状态栏及底部导航栏)

Toast

Button

TextView

StepView

角标/未读消息

Android O/8.0/Android8.0 快捷方式

自动换行TextView

标签布局

SearchView

WebView

动画

  • 公共技术点之 Android 动画基础

  • BaseAnimation

    BaseAnimation network Android animation set, custom controls, nearly 200 kinds of source code! BaseAnimation, if a new version is updated automatically to remind everyone, I hope everyone will contribute their animated XML files or other source, together to create this open source app!

  • lottie-android

    Lottie是Airbnb开源的一个支持 Android、iOS 以及 ReactNative,利用json文件的方式快速实现动画效果的库。

  • dinuscxj/LoadingDrawable

    Some beautiful android loading drawable, can be combined with any view as the LoadingView or the ProgressBar. Besides, some Drawable can customize the loading progress too.

SVG动画

Path动画

Theme

  • Bilibili/MagicaSakura

    [MagicaSakura 是 Android 多主题框架。~ is an Android multi theme library which supporting both daily colorful theme and night theme. http://app.bilibili.com](MagicaSakura 是 Android 多主题框架。~ is an Android multi theme library which supporting both daily colorful theme and night theme. http://app.bilibili.com)

  • ximsfei/Android-skin-support

    Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验. 一行代码就可以实现换肤, 你值得拥有!!!

  • garretyoder/Colorful

    Android runtime theme library Colorful is a dynamic theme library allowing you to change your apps' color schemes easily.

  • hongyangAndroid/AndroidChangeSkin

    一种完全无侵入的换肤方式,支持插件式和应用内,无需重启Activity.

  • qqliu10u/QSkinLoader

    一个支持多种场景的Android换肤框架。基本原理是通过代理LayoutInflater的View创建过程解析皮肤相关属性(background/src/textColor等),将皮肤相关属性设置到View的Tag内,在切换皮肤时寻找对应的皮肤来完成实时刷新动作。此方案具有代码及XML侵入性小、功能完善(支持Activity/Dialog/悬浮窗/PopWindow/Fragment等)、无需重启Activity、支持自定义属性换肤、同时支持资源内换肤和独立资源包(下载后换肤)等优点。接口按流式编程设计,个人感觉,比目前几种换肤框架好用一些。

布局

卡片布局

瀑布流布局

  • etsy/AndroidStaggeredGrid

    AndroidStaggeredGrid是etsy实现的一个android瀑布流控件,没有继承ListView和Gridview,而是从更深层的AbsListVew着手实现

流式布局

可拖动布局

侧滑菜单

选择器

  • gzu-liyujiang/AndroidPicker

    安卓选择器类库,包括日期选择器、时间选择器、单项选择器、双项选择器、城市地址选择器、车牌号选择器、数字选择器、星座选择器、生肖选择器、颜色选择器、文件选择器、目录选择器等,可自定义顶部及底部界面,可自定义窗口动画……Picker for android, include date&time/option/number/address/city/color/file&directory.

  • code-troopers/android-betterpickers

图表

  • PhilJay/MPAndroidChart

    A powerful Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, dragging and animations.

  • SuitLines

    一个小巧且高效的线性图表组件

  • lecho/hellocharts-android

    Charts/graphs library for Android compatible with API 8+, several chart types with support for scaling, scrolling and animations

  • diogobernardino/WilliamChart

    Android library to create charts.

  • xcltapestry/XCL-Charts

    Android图表库(XCL-Charts is a free charting library for Android platform.),基于Android Canvas来绘制各种图表,使用简便,定制灵活。目前支持3D/非3D/背向式/横向/竖向柱形图(Bar Chart)、3D/非3D饼图(Pie Chart)、堆叠图(Stacked Bar Chart)、面积图(Area Chart)、 折线图(Line Chart)、曲线图(Spline Chart)、环形图(Dount Chart)、南丁格尔玫瑰图(Rose Chart)、仪表盘(Dial Chart)、刻度盘(Gauge Chart)、雷达图(Radar Chart)、漏斗图(Funnel Chart)、圆形图(Cir… http://blog.csdn.net/xcl168/article/d…

图片处理

图片压缩

  • transferee

    一个帮助您完成从缩略图到原图无缝过渡转变的神奇组件

  • Curzibn/Luban

    Luban(鲁班)—Image compression with efficiency very close to WeChat Moments/可能是最接近微信朋友圈的图片压缩算法

  • zetbaitsu/Compressor

    An android image compression library.

二维码

  • bingoogolapple/BGAQRCode-Android

    QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

滑动返回

Menu

时间选择器

  • Bigkoo/Android-PickerView

    This is a picker view for android , support linkage effect, timepicker and optionspicker.(时间选择器、省市区三级联动)

Emoji

  • rockerhieu/emojicon

    A library to show emoji in TextView, EditText (like WhatsApp) for Android

Jetpack

Navigation使用

问题引入:Android Jetpack Navigation with ViewPager and TabLayout

https://stackoverflow.com/questions/52540303/android-jetpack-navigation-with-viewpager-and-tablayout

https://github.com/SmartToolFactory/NavigationComponents-Tutorials

Kotlin

suspend操作

  • suspend方法做的耗时操作要不要在子线程做,google官方和github大V好像意见不是很统一

https://github.com/android/architecture-components-samples.git

开了子线程

  • android-showcase就没开子线程

https://github.com/igorwojda/android-showcase.git

Log

注解

  • androidannotations/androidannotations

    功能简介:
    1、使用依赖注入(Dependency Injection)
    2、简化的线程模型(Simplified threading model)
    3、事件绑定(Event binding)
    4、REST Client
    5、No Magic

安全

权限管理

Crash

  • ACRA/acra

    Application Crash Reports for Android

  • Ereza/CustomActivityOnCrash

    Android library that allows launching a custom activity when your app crashes, instead of showing the hated "Unfortunately, X has stopped" dialog.

视频

  • lipangit/JiaoZiVideoPlayer

    Android VideoPlayer MediaPlayer VideoView MediaView Float View And Fullscreen

  • yixia/VitamioBundle

    Vitamio for Android http://www.vitamio.org/en/

  • daniulive/SmarterStreaming

    大牛直播,跨平台(windows/android/iOS)推送(rtmp)、播放器(rtmp/rtsp),支持录像、导播、动态视频合成、实时快照、水印、音频混音、互动等,国内外为数不多不依赖开源框架,业界真正靠谱的超低延迟(1秒左右)。 http://www.daniulive.com

  • CarGuo/GSYVideoPlayer

    视频播放器(IJKplayer),HTTPS支持,支持弹幕,支持滤镜,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频本身自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,直接添加控件为封面,列表全屏动画,视频加载速度,列表小窗口支持拖动,5.0的过场效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,其他一些小动画效果,rtsp、concat、mpeg。简书: http://www.jianshu.com/p/9fe377dd9750

  • Bilibili/ijkplayer

    Android/iOS video player based on FFmpeg n3.3, with MediaCodec, VideoToolbox support.

  • pili-engineering/PLDroidPlayer

    PLDroidPlayer 是七牛推出的一款适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。 https://developer.qiniu.com/pili/sdk/…

  • google/ExoPlayer

    An extensible media player for Android

  • EasyDSS/EasyPlayer

    An elegant, simple, fast RTSP/RTMP/HLS/HTTP Player.EasyPlayer support RTSP(RTP over TCP/UDP)version& RTMP version & Pro version,cover all kinds of streaming media!EasyPlayer是一款精炼、高效、稳定的流媒体播放器,分为RTSP版、RTMP版和Pro版本,支持各种各样的流媒体音视频播放! http://www.pvale.com/

视频开源项目

Camera

  • wuhaoyu1990/MagicCamera

    Real-time Filter Camera&VideoRecorder And ImageEditor With Face Beauty For Android---包含美颜等40余种实时滤镜相机,可拍照、录像、图片修改

  • Skykai521/StickerCamera

    This is an Android application with camera,picture cropping,collage sticking and tagging.贴纸标签相机,功能:拍照,相片裁剪,给图片贴贴纸,打标签。

Json解析

键盘冲突

  • Jacksgong/JKeyboardPanelSwitch

    For resolve the layout conflict when keybord & panel are switching (Android键盘面板冲突 布局闪动处理方案)

日历

IM

  • meili/TeamTalk

    TeamTalk 是蘑菇街开源的一款企业办公即时通信软件,最初是为自己内部沟通而做的 IM 工具. TeamTalk is a solution for enterprise IM

  • siacs/Conversations

    Conversations is an open source XMPP/Jabber client for the Android platform https://conversations.im

  • aurora-imui

    General IM UI components. Android/iOS/RectNative ready. 通用 IM 聊天 UI 组件,已经同时支持 Android/iOS/RN。

音乐播放器

Email

视频资料

  • Android

    GitHub上最火的Android开源项目,所有开源项目都有详细资料和配套视频

Debug

热修复

aar打包

APK打包

编译/Gradle构建

Res资源管理

Gradle版本下载

Gradle脚本

  • 复制文件

    tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn(copyAAR)
    }
    
    //copy the aar output files to other projects
    task copyAAR(type: Copy) {
        from 'build/outputs/aar/common-release.aar'
        into '../home/libs/'
    }
    
  • 编译生成的apk改名

    android {
    	applicationVariants.all { variant ->
            variant.outputs.each { output ->
                def outputFile = output.outputFile
                def fileName
                if (outputFile != null && outputFile.name.endsWith('.apk')) {
                    if (variant.buildType.name.equals('release')) {
                        fileName = "business_release.apk"
                    } else if (variant.buildType.name.equals('debug')) {
                        fileName = "business.apk"
                    }
                    output.outputFile = new File(outputFile.parent, fileName)
                }
    
            }
        }
    }
    

查看引入的库和jar包之间的依赖关系

APK反编译

APK瘦身

性能优化

线程池优化

APP保活

注:Android 进程常驻(0)----MarsDaemon使用说明
6.0以下的保活效果很好的一个方案:
https://github.com/Marswin/MarsDaemon

APP逆向分析

组件化方案

组件化方案之路由器

组件化之多进程方案

组件化Demo

插件化方案

  • asLody/VirtualApp

    An open source implementation of MultiAccount.(Support 4.0 - 8.0).

  • limpoxe/Android-Plugin-Framework

    Android插件框架,免安装运行插件APK ,支持独立插件和非独立插件

  • singwhatiwanna/dynamic-load-apk

    DL : dynamic load framework in android http://blog.csdn.net/singwhatiwanna/a…

  • didi/VirtualAPK

    A powerful and lightweight plugin framework for Android VirtualAPK 是滴滴出行自研的一款优秀的插件化框架,主要有如下几个特性。
    1、 功能完备

    支持几乎所有的 Android 特性;

    四大组件方面:四大组件均不需要在宿主manifest中预注册,每个组件都有完整的生命周期。
    Activity:支持显示和隐式调用,支持 Activity 的 theme 和 LaunchMode,支持透明主题;
    Service:支持显示和隐式调用,支持 Service 的 start、stop、bind 和 unbind,并支持跨进程 bind 插件中的 Service;
    Receiver:支持静态注册和动态注册的 Receiver;
    ContentProvider:支持 provider的所有操作,包括 CRUD 和 call 方法等,支持跨进程访问插件中的 Provider。

    自定义View:支持自定义 View,支持自定义属性和 style,支持动画;
    PendingIntent:支持 PendingIntent 以及和其相关的 Alarm、Notification 和AppWidget;
    支持插件 Application 以及插件 manifest 中的 meta-data;
    支持插件中的so。

    2、 优秀的兼容性

    兼容市面上几乎所有的 Android 手机,这一点已经在滴滴出行客户端中得到验证;
    资源方面适配小米、Vivo、Nubia 等,对未知机型采用自适应适配方案;
    极少的 Binder Hook,目前仅仅 hook 了两个 Binder:AMS 和 IContentProvider,Hook过程做了充分的兼容性适配;
    插件运行逻辑和宿主隔离,确保框架的任何问题都不会影响宿主的正常运行。

    3、 入侵性极低

    插件开发等同于原生开发,四大组件无需继承特定的基类;
    精简的插件包,插件可以依赖宿主中的代码和资源,也可以不依赖;
    插件的构建过程简单,通过Gradle插件来完成插件的构建,整个过程对开发者透明。

  • iReaderAndroid/ZeusPlugin

    成熟易懂的Android插件补丁框架(可直接商业化的项目,日活千万级项目多年使用验证稳定)

common组件

面向AOP编程

Rx系列

  • trello/RxLifecycle

    Lifecycle handling APIs for Android apps using RxJava
    RxAndroid之Rxlifecycle使用
    该项目是为了防止RxJava中subscription导致内存泄漏而诞生的,核心思想是通过监听Activity、Fragment的生命周期,来自动断开subscription以防止内存泄漏

优秀开源项目

浏览器WebView

反射及动态代理

MVP模式优秀开源项目

  • MVPArms

    A common architecture for Android applications developing based on MVP,integrates many open source projects( like Dagger2,Rxjava,Retrofit... ),to make your developing quicker and easier.

  • JustWayward/BookReader

    📕 "任阅" 网络小说阅读器,实现追书推荐收藏、书籍/标签检索、模拟翻书的翻页效果、缓存书籍、日夜间模式、书签、txt/pdf/epub书籍阅读、字体/主题/亮度设置、Wifi传书等功能~ https://github.com/smuyyh

  • north2016/T-MVP

    Android AOP Architecture by Apt, AspectJ, Javassisit, based on Realm+Databinding+MVP+Retrofit+Rxjava2

  • MindorksOpenSource/android-mvp-architecture

    This repository contains a detailed sample app that implements MVP architecture using Dagger2, GreenDao, RxJava2, FastAndroidNetworking and PlaceholderView https://mindorks.com/open-source-proj…

  • GitLqr/LQRWeChat

    本项目仿最新版微信6.5.7(除图片选择器外),基于融云SDK,使用目前较火的 Rxjava+Retrofit+MVP+Glide 技术开发。相比上个版本,加入发送位置消息,红包消息等功能。

  • jaydenxiao2016/AndroidFire

    AndroidFire,一款新闻阅读 App框架,基于 Material Design + MVP + RxJava + Retrofit + Glide,基本涵盖了当前 Android 端开发最常用的主流框架,基于此框架可以快速开发一个app。 https://github.com/jaydenxiao2016/And…

  • codeestX/GeekNews

    📚A pure reading App based on Material Design + MVP + RxJava2 + Retrofit + Dagger2 + Realm + Glide

  • SuperMan42/MVP

    App based on Material Design + MVP + Rxjava + Retrofit + Okhttp + RecyclerView + Glide + cache + theme + others + 全民直播 + 高德选址

    MVP项目中比较好的例子

  • a371166028/likequanmintv

    基于MVP的Retrofit2(okhttp3)+rxjava+dagger2+greendao+glide+rtmp直播。该项目系仿全民TV,属于独立开发者作品,仅供参考学习,拒绝做一切商业用途,如有侵权,请告知删除

  • liu-xiao-dong/JD-Test

    仿京东app 采用组件化架构 首页采用屏幕适配的较好方案

Android Studio

插件

转移配置文件

Android Studio设置,减少对C盘空间的占用

浏览器插件

  • octotree github tree 树形目录查看插件

xshell/xftp工具注册码

app性能测试工具

MD文档本地图片处理

面试

算法面试

TCP/IP 数据包

联动效果

研发助手

  • didi/DoraemonKit

    简称 "DoKit" 。一款功能齐全的客户端( iOS 、Android )研发助手,你值得拥有。

埋点统计

百度网盘优质资源

Office安装包

流程图