参考链接:
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.