【Android开发基础系列】开源类库专题

参考链接:

awesome-java

https://github.com/akullpp/awesome-java


        A curated list of awesome Android libraries and resources. For general Javalibraries have a look at awesome-java.

• Emulators

• Libraries

    ◦ Charts

    ◦ Cloud Services

    ◦ Dependency Injection

    ◦ Game Development

    ◦ GUI

        ▪  ActionBar

        ▪ Navigation

        ▪ Animations

        ▪ Images

        ▪ Inputs

        ▪ Loading images

    ◦ JSON

    ◦ Crash monitoring

    ◦ Networking

    ◦ Notifications

    ◦ Database

        ▪ ORM

    ◦ REST

    ◦ Testing

    ◦ Tracking

    ◦ Maps

    ◦ Utility

    ◦ Debugging tools

    ◦ Wireless

    ◦ Chat and Messaging

    ◦ Custom Dialog

    ◦ Version Checking

    ◦ Other

• Resources

    ◦ More lists of libraries

• Development Alternatives

    ◦ C#

    ◦ HTML, CSS and Javascript

    ◦ Lua

    ◦ Scala

    ◦ Groovy

    ◦ Kotlin

• Performance

• Other Awesome Lists

• Contributing

 

1. Emulators

    •   AMIDuOS

    • AndY

    •  ARChon

    • BlueStacks

    • Droid4X

    • Genymotion

    • nox

    • Xamarin

2. Libraries 

2.1 Charts

    • AChartEngine- Charting Engine.

    • EazeGraph- Chart and graph library.

    • WilliamChart- Chart library with good motion capabilities.

    • HelloCharts- Chart and graph library with support for scaling,scrolling and animations.

    • MPAndroidChart- An Android chart and graph library supporting scalingand dragging by gesture.

 

2.2 Cloud Services

    • CloudRail- Unified API Libraryfor: Cloud Storage, Social Profiles, Payment, Email, SMS & POIs.

 

2.3 Data binding

    • Anvil- A small library to create reactive UI components,inspired by React. Provides data binding and event listener binding, fits wellfor MVVM.

    • RoboBinding- A data-binding Presentation Model (MVVM) framework forthe Android platform.

    • Data Binding Library- Official Android Data Binding Library towrite declarative layouts and minimize the glue code necessary to bindapplication logic and layouts.

 

2.4 Dependency Injection

    • RoboGuice- Dependency injection framework for Android.

    • Dagger- Dependency injection framework for Java and Android.

    • Dagger 2- A fast dependency injector for Android and Java.

    • Butter Knife- View "injection" library for Android.

    • AndroidAnnotations- Java annotations with dependency injection at compiletime.

 

2.5 Game Development

    • AndEngine- Free, Fun and Fast Android 2D OpenGL Game Engine.

    • Libgdx- Cross-platform game engine and SDK.Open Source

    • Vuforia- Augmented Reality library.

    • Unity- Cross-platform game creation system.

    • Rajawali- Android OpenGL ES 2.0/3.0 Engine

 

2.6 GUI

    • Pull to refresh- A swipe refresh layout is available in the v4 supportlibrary.

    • Cardslib- Android Library to build a UI Card.

    • AndroidStaggeredGrid- Grid view which supports multiplecolumns with rows of varying sizes.

    • AndroidQuery- Android-Query (AQuery) is a light-weight library fordoing asynchronous tasks and manipulating UI elements in Android.

    • Flow- Library that helps with describing an app as acollection of moderately independent screens.

    • Crouton- Context sensitive notifications for Android

    • DragSortListView- Extension of the Android ListView that enablesdrag-and-drop reordering (No longer maintained).

    • MaterialProgressBar- Material design ProgressBar withconsistent appearance.

    • AndroidFillableLoaders- Fillable progress view working with SVGpaths. Nice option too for creating interesting app logos.

    • NexusDialog- Allows you to easily and quickly create forms inAndroid with little code.

    • Snap RecyclerView Utils- Populate Single or multiple LayoutRecyclerView without creating an Adapter.

    • SwipeableCard- Implementation of swipe card like StreetView!!

    • ElasticProgressBar- Beautiful loading bar.

    • EntryScreenManager- Intro/Entry/Walkthrough/Starting Screens.

    • EasyIntro- The flexible, easy to use, all in one app introlibrary for your Android project.

    • Material-Calendar-View- Material Design Calendar compatible withAPI 8+

    • SectionedRecyclerViewAdapter- An Adapter that allows a RecyclerView tobe split into Sections with headers and/or footers.

    • DragListView- Drag and drop to reorder items in a list, grid orboard.

    • Animated Expanding ListView- Animated Expanding ListView provides afancy animation on expanding or collapsing the content of a listview item.

    • TastyToast- Toasts with icons and color.

    • DotLoader- A customizable loading animation with Dots. 

2.6.1 ActionBar

    • ActionBarSherlock- ActionBar for older Android versions.

    • FadingActionBar- Fading action bar effect that can be seen in the new Play Music app.

2.6.2 Navigation

    • SlidingMenu- Library to create applications with slide-in menus.

    • SlidingTutorial- Simple library that helps to create awesome sliding android app tutorials.

    • PagerSlidingTabStrip- An interactive indicator to navigate between the different pages of a ViewPager.

    • Page View indicator- Support for horizontally scrollingViewPager.

    • MaterialDrawer- Simple take on a material design navigation drawer. 

2.6.3 Animations

    • NineOldAndroids- Library for using the Honeycomb animation API on all versions of the platform back to 1.0.

    • Rebound- Rebound is a java library that models spring dynamics.

    • Android View Animations- Cute view animation collection.

    • Android-Transition- Allows the easy creation of view transitions that react to user inputs.

    • Android-View-Actions- Makes creating complex animations for views easy.

2.6.4 Images

    • android-crop- Library project for cropping images.

    • CircularImageView- Custom view for circular images while maintaining the best draw performance.

    • Android-Image-Filter- Library project for applying image filters easily.

    • Compressor- Compressor is a lightweight and powerful android image compression library.

2.6.5 Inputs

    • FloatingLabel- FloatingLabel Allows you to create a blow kind ofEditText.Doesn't have Gradle or Maven Support.

    • MaterialEditText- Supporting Floating Labels, Single Line Ellipsis,Max/Min Characters, Helper Text and Error Text with Custom Colors.

    • Emojicon- Adds emoticons to your app

    • MaterialSearchBar- Material Design Search Bar for Android

2.6.6 Loading Images

    • Picasso- A powerful image downloading and caching library forAndroid.

    • Universal Image Loader- Asynchronous, out of the box loading and caching of images.

    • Glide- An image loading and caching library for Android focused on smooth scrolling, Recommended by google.

    • Fresco- An Android library for managing images and the memory they use.

    • Glide Bitmap Pool- Glide Bitmap Pool is a memory management library for reusing the bitmap memory.

    • MediaPicker- Android Library that lets you to select multiple images, video or voice for Android.

2.7 JSON

    • Gson- Gson is a Java library used for serializing and deserializing Java objects from and into JSON.

    • Jackson JSON Processor- High-performance JSON processor.

2.8 Crash monitoring

    • Fabric Crashlytics- Easy crash reporting solution.

    • HockeyApp- Distribution, Crash Reports, Feedback and Analytics

    • Splunk MINT- Monitoring, Crash Reports, Real tima data, Statistic.

    • Bugsnag- Cross platform error monitoring.

    • Catcho- No Force Close any more.

2.9 Networking

    • Ion- Good networking library for android.

    • OkHttp- An HTTP+SPDY client for Android and Java applications.

    • Asynchronous Http Client- An Asynchronous HTTP Library.

    • RoboSpice- Library that makes writing asynchronous network requests easy.

    • IceNet- Fast, Simple and Easy Networking for Android

    • Android Volley- Official Android HTTP library that makes networking for easier and faster.

    • IceSoap- Easy, asynchronous, annotation-based SOAP for Android.

    • node-android- Run Node.js on Android.

    • HappyDns- A Dns library, user can use custom dns server, dnspod httpdns. Only support A record.

    • RESTMock- HTTP Web server for mocking API responses in AndroidInstrumentation tests.

    • AndroidNetworking- Android Networking is a powerful library for doing any type of networking in Android applications.

    • Packetzoom- SDK for optimizing HTTP requests and free analytics service for networking.

2.10 Notifications

    • android-remote-notifications- Pulls notifications from a remote JSON file and shows them in your app.

    • Android HeartBeat Fixer- Way to set heartbeat interval and users receive PushNotifications from GCM.

 

2.11 Database

    • Cupboard- Access the sqlite easily via direct database access or through the ContentProvider framework.

    • DbInspector- Provides a simple way to view the contents of the in-app database for debugging purposes.

    • SQLite Asset Helper- manage database creation and version management using an application's raw asset files.

    • Realm- The alternative to SQLite and ORMs: Simple, modern and fast! Object oriented API and multi platform support.

    • Realm Asset Helper- Copies a realm database from the apk assets folder. Efficienty handles versioning of read-only realm databases.

    • RestorableSQLiteDatabase- A wrapper to replicate android'sSQLiteDatabase with restoring capability.

2.11.1 ORM

    • requery- Compile time ORM and SQL query library for Java & Android.

    • GreeDAO- Light & fast ORM solution.

    • ORMLite- Lightweight ORM Java package for JDBC and Android.

    • ActiveAndroid- Active record style ORM.

    • Sugar ORM- Insanely easy way to work with Android Databases.

    • DBFlow- Fast and powerful ORM with compile-time annotation processing.

    • NexusData- Object graph and persistence framework for Android.

    • SimpleNoSQL- A simple NoSQL client for Android. Meant as a document store using key/value pairs and some rudimentary querying. Useful for avoiding the hassle of SQL code.

    • RxSimpleNoSQL- Reactive extensions for SimpleNoSQL. Manipulate entities using Observables.

2.12 REST

    • Retrofit- Retrofit turns your REST API into a Java interface. 

2.13 Testing

    • Robotium- Test automation framework for black-box UI tests.

    • Roboletric- Unit test framework to run tests inside the JVM on your workstation, not in the emulator.

    • AssertJ Android- AssertJ assertions geared towards Android.

2.14 Tracking

    • MobileAppTracking- Tracking your marketing campaigns across multiple ad networks.

    • Mixpanel- Analytics platform to analyze the users.

    • Countly- Open source mobile& web analytics, push notifications and crash reporting platform, based on Node.js, MongoDB and Linux.

    • CleverTap- Analytics platform and user-engagment platform with 1 million free events.

2.15 Maps

    • Google-Directions-Android- Allows you to calculate the direction between two locations and display the route on a Google Map using the GoogleDirections API.

    • Android Maps Extensions- Extending capabilities of Google MapsAndroid API v2, adding marker clustering among other things.

    • Clusterkraf- Clustering library for the Google Maps Android API v2.

2.16 Utility

    • EventBus- EventBus is a library that simplifies communication between different parts of your application.

    • Otto- Event Bus for Android.

    • Weak handler- Memory safer implementation of android.os.Handler.

    • Byte Buddy- Runtime code generation library with support for Android.

    • Secure Preference Manager- Secure Preference Manager for android. It uses variousEncryption to protect your application's Shared Preferences.

    • LeakCanary- Catch memory leaks as they occur.

    • Drekkar- An Android event bus for WebView and JS.

    • Androl4b- A vm for assessing android applications.

    • DroidMVP- Android library to help you incorporate MVP along withPassive View and Presentation Model patterns into your app.

    • Gota- Simplifying Android Permissions. 

2.17 Debugging Tools

    • Linx- Show logcat inside the device for debug builds

    • Scalpel- View the entire hierarchy in 3d in the phone.

    • Stetho- Debug hierarchy and network from chrome.

2.18 Wireless

    • SmartGattLib- Simplifies the work with Bluetooth SMART devices(a.k.a. Bluetooth Low Energy in Bluetooth 4.0).

2.19 Chat & Messaging

    • Applozic Android Chat SDK- Android Chat and Messaging SDK for adding real time chat and in-app messaging into your android application. 

2.19.1 Custom Dialog

    • MediaRecorderDialog- Cutome Dialog torecoder audio, store it and play it in your phone.

    • HijriDatePicker- offers a hijri (Islamic Calendar) Date Picker designed on Google's Material Design Principals For Pickers. 

2.20 Version Checking

    • AppUpdater- comprehensive and feature rich library, including support for checks at Amazon and FDroid.

    • Gandalf- comprehensive features and a "companion" iOS solution.

    • Siren- focused feature set that mimicks the popular iOS library of the same name. Supports Play and Amazon.

    • Fit- version checking callback framework with no UI. 

2.21 Other

    • Android Support library- The Android Support Library package is a set of code libraries that provide backward-compatible versions of Android framework API.

    • Google Play Services- Library to access Google services, such as account syncing, Google+ (sharing, single sign-on), Google Maps, LocationAPIs, Google Play Games, Cloud Messaging, Android Device Manager, and others.

    • Tape- A lightning fast, transactional, file-based FIFO forAndroid and Java.

    • Guava: Google Core Libraries for Java- Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.

    • Android Scripting- Allows to run scripting languages on Android.

    • Android Priority Job Queue- Implementation of a Job Queue to easily schedule jobs (tasks) that run in the background, improving UX and application stability.

    • RateMeMaybe- Asks the user if (s)he wants to open the Play Store to rate your application.

    • Easy Rating Dialog- Lib provides a simple way to display an alert dialog for rating app.

    • ZXing Android-Integration- Integration with Barcode Scanner viaIntent.

    • Gradle Retrolambda Plugin- Java 8 Lambdas on Android!

    • RxJava- RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

    • Caffeine- A collection of utility classes that help make Android development faster.

    • AboutLibraries- Automatically generates an About this app section, with a list of used libraries.

    • AudioPlayerView- A view that loads audio from an url and have basic playback tools.

    • andle- command line tool help you sync dependencies, sdk or build tool version.

    • Typography- An Android library that makes it easy to use custom fonts in views.

    • transai- command line tool help you manage localization string files.

    • Android-Link-Preview- It makes a preview from an url, grabbing all the information such as title, relevant texts and images.

 

3. Resources

    • Vogella Tutorials- Very good tutorials by Lars Vogel.

    • Android Design in Action Video series- The video series byAndroid Design Team of Google.

    • Android Design in Action slides- The application that gives you access to the slides of the video series.

    • Android DevBytes Video Series- It is the technical counterpart of Android Design in Action series.

    • Developing for Android- A series of articles from Googler Chet Hasae and others, answering most commonly asked question: "What are some of the important rules to keep in mind when developing Android applications?".

    • Android Hive Tutorials- Very good tutorials for beginners.

    • Android Weekly- Newsletter with weekly information about android.

    • Android Asset Studio- Generator for icons and other assets.

    • Android Action Bar Style Generator.

    • Device Art Generator- Wraps app screenshots in real device artwork.

    • Android UI design resources- Gives you wide variety of design resources form a Google Developer Expert in UI/UX.

    • Pencil Project- An open source prototyping software.

    • Google Wear App- This is an open source Google Wear App that uses speech recognition to calculate a tip.

    • How to Make Android Apps- Video tutorials by Derek Banas.

    • android-blogs- List with blogs about Android.

    • Future Studio- Extensive Android tutorials on Retrofit, Picasso, Glide & Gson.

3.1 More lists of libraries

    • The Android Arsenal- Large list of android libraries

    • DevAppsDirect - Demo Market- App that demonstrates different libraries.

    • Square libraries- Multiple high quality libraries by square.

    • Awesome Android @LibHunt- Your go-to Android Toolbox.

 

4. Development Alternatives

        My personal recommendation is (for now) to use the android api to build a native app. Scala can help to build this native apps with cleaner code. But there are also use cases where alternatives like cross-platform development can be useful.

4.1 C#

    • Xamarin- Framework to create native iOS, Android, Mac andWindows apps in C#.

4.2 HTML, CSS and Javascript

    • PhoneGap- Open source framework by Adobe to create cross platform mobile apps using HTML, CSS, and JavaScript.

    • Titanium- Open-source framework to create 'native' cross platform apps using JavaScript.

    • NativeScript- An open-source framework to build native iOS andAndroid apps with JavaScript from a single code base.

    • React Native- A framework for building native apps with React byFacebook.

    • Ionic Framework- A framework to build hybrid apps with mobile-optimizedHTML, CSS and JS with AngularJS.

    • Apache Cordova- Cordova based applications are, at the core, applications written with web technology: HTML, CSS and JavaScript.

    • Reapp.io- Cordova based framework to build hybrid apps with mobile-optimized HTML, CSS and JS with ReactJS.

4.3 Lua

    • Corona SDK- Framework to create native iOS and Android Apps(especially Games).

 

4.4 Scala

    • Scala on Android- Introduction to Scala on Android.

    • Scaloid- Library for less painful Android development with Scala.

    • Macroid- A modular functional UI language for Android.

 

4.5 Groovy

    • Groovy on Android- Introduction to Groovy on Android.

    • Groovy Language Support for Android- Gradle Plugin forCompiling Groovy for Android.

    • SwissKnife- A multi-purpose Groovy library containing view injection and threading for Android using annotations.

 

4.6 Kotlin

    • Anko- DSL for Android written in Kotlin by JetBrains.

    • Kotterknife- Android view injection writen in Kotlin based onButterKnife

    • Android Kotlin Samples- Some basic Android code samples writen in Kotlin.

    • KAndroid- Lightweight library providing useful extensions to eliminate boilerplate code in Android SDK.

    • RxKotlin/Pocket- This app help user to save links easily, and can export to Evernote as weekly. 

5. Performance

awesome-android-performance - A list of awesome Android tutorials, videos and tools for performance optimization.

你可能感兴趣的:(【Android开发基础系列】开源类库专题)