Some time ago, I decompiled some popular apps on the market while investigating third-party push services. One of them is typical in both design and function, with more than 10 million users (according to its official website) and an approval rating of more than 97% on a mobile assistant in China. You can see how popular the APP is (not to mention the name of the APP). Decompiling the APP reveals that the third-party libraries it uses are also typical. Here are the third party libraries they use to give some reference to children’s shoes.

1.Android Design Support Library

This is not a third party library, it is an official Google support library. The reason why this library is listed is because it is very powerful

This library has a great relationship with many open source projects on Github. Many effects of material Design have been implemented too much on Github. Now the official has standardized some effects. This is not to be confused with the Compatible Android Support Library, but there are significant differences. Android Design Support Library Android Design Support Library

2. butterknife

This library should be familiar to everyone. JakeWharton’s work has more than 10,000 stars on github, which shows its popularity.

The open source library frees us from the massive findViewById() and setOnclicktListener() implementations that have minimal performance impact and are limited to retentionPolice.class for custom annotations. That is, annotations are valid until a.class file is compiled, with no additional performance cost at run time.

Instead of slow reflection, code is generated to perform the view look-ups. Calling bind delegates to this generated code that you can see and debug.

Some people think that the code is less readable after using this library, but I don’t really agree with that. On the contrary, the code is much less and cleaner after using this library.

For more on the efficiency of compile-time annotations, check out this article on two or three things you need to know about Java compile-time annotations. Ease your mind!

This library works with Android-Butterknife-Zelezny on Android Studio.

3.fastjson.gson

These two JSON serialization and deserialization libraries should be familiar, Fastjson is from Ali, gson is from Google, the basic functions are similar, as to why the two libraries appear in this APP, should be the APP version of the developers have different habits. It is also possible that some third-party libraries used rely on one or the other.

It should be noted that Fastjson claims to be the fastest JSON library in the Java language and has a streamlined and optimized version for Android that has been reduced in size by nearly half. Because of the larger size, the reason for abandoning FastJSON to avoid the 64K method limit should no longer be justified. Fastjson Android version

But perhaps because Gson is officially published by Google and has more detailed documentation, it appears more frequently in the APP.

4.picasso

A powerful image downloading and caching library for Android

Square is a powerful open source image download and cache library. It is so popular that many projects use it. It’s easy to use.

Glide and Fresco are also popular image loading libraries.

It is a personal project of Google employees. It is used on many projects at Google. He can do everything Picasso can and still support giFs. I also use this library for my company’s projects. Note that when using this library to load images to the ImageView, the Id of the ImageView set Tag must be specified.

Glide VS Picasso(Note the comments below if you plan to use Glide)

Fresco is an open source project from FaceBook, and detailed documentation in Chinese is at the link above. This library in addition to support a wide range of image formats, the biggest feature is in memory optimization, using this library can effectively prevent OOM situation.

On systems below 5.0, the Bitmap cache is located in Ashmem, so Bitmap object creation and release will not trigger GC, and fewer GC will make your APP run more smoothly. For systems 5.0 and above, memory management is greatly improved by comparison, so the Bitmap cache is located directly on the Java heap. This memory is cleared when the application is running in the background.

However, the powerful function of this library makes the volume of this library 2M large, and it is a little inconvenient to use.

Finally, if you are still using the android-universal-image-loader library, it is recommended to replace it as soon as possible. The library has stopped updating. And both use experience and performance are not as good as the above library.

Really have no time for development… so I stop project maintaining since Nov 27 🙁

5.PullZoomView

An Android custom ListView and ScrollView with pull to zoom-in.

This goes straight to the renderings




PullZoomView render.gif

6.SwipeBackLayout

An Android library that help you to build app with swipe back gesture.

A library that makes it easy for us to swipe right to exit the current page. This library was also used in our company’s project, but it took some time to work on compatibility issues (I’ll share the holes if I have time).

It’s worth mentioning again that the library uses ViewDragHelper, a useful utility class for gesture processing.

ViewDragHelper is a utility class for writing custom ViewGroups. It offers a number

of useful operations and state tracking for allowing a user to drag and reposition

views within their parent ViewGroup.

Android ViewDragHelper fully resolves custom ViewGroups




swipeBackLayout.png

7.okhttp okio

This library is also an open source web request library from Square (okHTTP internally relies on Okio). It is said that Google has now been used in the Android source code, visible its powerful.

Here is an open source okHTTP package library called OkHTTP-utils by Zhang Hongyang

As for the web request library, there are still many people using Android-Async-HTTP. It uses HttpClient internally, but Google seems to have removed the HttpClient API in version 6.0, so the library is now a bit outdated.

But I found this on the official Android-Async-HTTP Wiki:




android-async-http_Wiki.png

8.volley

This library should also be familiar, Google official out of a library, including the network request and image load caching function. Advantage in handling small and frequent network requests.

Previously, the library was used to add third-party dependencies, such as Android-Volley. There are now official Gradle dependencies.

The compile ‘com. Android. Volley: volley: 1.0.0’

9.PagerSlidingTagStrip

Interactive paging indicator widget, compatible with the ViewPager from the Android Support Library.

This library is also widely used to achieve the effect of sliding ViewPage and top indicator.




pagerSlidingTabStrip.png

10.Android-PickerView

IOS mimics PickerView control, time selection and option selection and support the first, second and third linkage effect

The author of this library has several other open source libraries which are also very good. If you are interested, you can click the link above to check it out on github.




pickerdemo.gif

11.packer-ng-plugin

The next generation of Android packaging tools, 1000 channel packages in 5 seconds

McXiaoke, the author of this library, will appear later.

12.NineOldAndroids

Android library for using the Honeycomb animation API on all versions of the platform back to 1.0!

NineOldAndroids is deprecated. No new development will be taking place. Existing versions will (of course) continue to function. New applications should use minSdkVersion=”14″ or higher which has access to the platform animation APIs.

Thanks for all your support!

View property animation is not supported until Android API 11 and beyond. This library is designed to enable properties animation to be used on systems below API 11. However, the library’s author Jake Wharton(yes, the god again) believes that the lowest version of the APP is now 4.0, so he will not update it.

13.Logger

Simple, pretty and powerful logger for android

As the author said, simple, beautiful, powerful a log printing tool.




custom-tag.png

14.materialish-progress

A material style progress wheel compatible with 2.3




spinningwheel.gif

15.Seven cattle

Qiniu Cloud storage is a data management platform designed for developers in the mobile era, providing online hosting of data, transmission acceleration and cloud processing services of rich media such as pictures, audio and video for Internet websites and mobile apps. (From Baidu Encyclopedia)

When it comes to data management platform, I can’t help but think of LeanCloud. I didn’t use leanCloud when I was in college. The documentation is very friendly to developers.

16.shareSDK

ShareSDK is a component that provides social functions for iOS and Android apps. It helps developers to implement mainstream social functions such as social sharing, login, following, obtaining user information, and obtaining friend lists.

17.Friends of au +

This should be the use of umENG data statistical analysis service and automatic update service, but it should be noted that the automatic update service official has issued a statement that the newly registered APP and the current APP no longer use this function to access this service, the already in use after October 15, 2016 will also stop the service.

18.ViewPagerIndicator

Paging indicator widgets compatible with the ViewPager from the Android Support Library and ActionBarSherlock.

The PagerSlidingTagStrip library, written by Jake Wharton, works like the PagerSlidingTagStrip library described above, and is usually used in combination with viewPager. Use it here




viewPagerIndicator.png

19.Millet push

Xiaomi push service supports all Android platforms and belongs to the system service framework on MIUI, sharing the system level chief connection.

Shared system-level connections can be understood in this way: theoretically, no matter whether the application is running in the background, as long as there is a network, it can receive push. This should be an important reason for this APP to choose Xiaomi push. On MIUI system, there are inherent advantages compared with other third-party push.

20.greenDAO

greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases. Being highly optimized for Android, greenDAO offers great performance and consumes minimal memory.

Of all the ORM libraries that map objects to SQLite databases, greenDAO has the advantage in terms of performance. And the documentation is very detailed.

However, one of the most popular cross-platform mobile database engines is realm, which supports iOS, OS X (Objective-C and Swift), and Android. Performance is even better than native SQLite. The goal is to replace SQLite. You can pay more attention.

Realm is a mobile database: a replacement for Core Data & SQLite

21.CircleImageView

A widely used circular photo gallery




CircleImageView.png

22.Crouton

I won’t do any active development for Crouton any more. But I still do accept pull requests that fix bugs.

So long, and thanks for all the forks.

This library functions like SnackBar. Since SnackBar is officially out, the author stopped updating the library.

See here for the use of SnackBar

23.BarcodeScanner

Android library projects that provides easy to use and extensible Barcode Scanner views based on ZXing and ZBar. An easy to use and extended barcode scanning library based on ZXing and ZBar




scanner.png

24.Rxjava

Since last year, RxJava+ articles have been flooded in various domestic websites, and recently I saw a company recruitment requirements directly familiar with the use of RxJava+Retrofit+OkHttp3, which shows its popularity. Although this library is a bit expensive to learn, fortunately, there is a wealth of learning materials about it.

Many RxJava beginners should have seen this article for Android developers RxJava details. There is also the Chinese version of the ReactiveX/RxJava document translated by the McXiaoke organization mentioned above.

25.PhotoView

Implementation of ImageView for Android that supports zooming, by various touch gestures.

Support through a variety of gestures to zoom a library, now many apps are used in this library, very popular.

The last

These are the majority of third-party libraries used in this excellent APP. Hope to be helpful to you! If you like it, please click a “like” to encourage ha ~ and finally thank the developers of this APP!