Day10
Time : October 31th,2015 / Author : xiaomeixw
library
1.UI:
GestureViews --- (From alexvasilkov) : ImageView and FrameLayout with gestures control and position animation. [手势控制图片查看].
MaskProgressView --- (From iammert) : Yet another android custom progress view for your music player. [音乐进读条].
MusicPlayerView --- (From iammert) : Android custom view and progress for music player,A good simple to learn custom view. [音乐播放旋转效果,是学习自定义View的非常好的范例].
InteractivePlayerView --- (From iammert) : Custom android music player view. [作者的又一个自定义音乐播放view].
PhotoPicker --- (From donglua) : A picture pick and view library like chinese what'app : wechat. [类似微信的图片选择、预览组件].
bubbles-for-android --- (From txusballesteros) : Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development. [桌面展示头像view].
2.Logic:
SharedPreferencesGenerator --- (From noties & Tag is Annotation ) : Android annotation based SharedPreferences Generator. [编译时注解,实现SharedPreferences].
@SPGPreference class Simplest { String someString; long someLong; int someInt; boolean someBool; } @SPGPreference(imports = "com.example.SomeClass") public class MyPrefs { @SPGKey(defaultValue = "${SomeClass.getString()}") String someKey; }
dexposed --- (From alibaba & Tag is AOP) : dexposed enable 'god' mode for single android application, can hotfix app and Performance Monitoring,base on xposed. [Android平台免Root无侵入AOP框架,性能监控、在线热补丁].
//application:initialization public class MyApplication extends Application { @Override public void onCreate() { // Check whether current device is supported (also initialize Dexposed framework if not yet) if (DexposedBridge.canDexposed(this)) { // Use Dexposed to kick off AOP stuffs. ... } } ... } //Basic usage DexposedBridge.findAndHookMethod(Activity.class, "onCreate", Bundle.class, new XC_MethodReplacement() { @Override protected Object replaceHookedMethod(MethodHookParam param) throws Throwable { // Re-writing the method logic outside the original method context is a bit tricky but still viable. ... } });
Follow is support status.
Runtime | Android Version | Support ------ | --------------- | -------- Dalvik | 2.2 | Not Test Dalvik | 2.3 | Yes Dalvik | 3.0 | No Dalvik | 4.0-4.4 | Yes ART | 5.0 | Testing ART | 5.1 | No ART | M | No
Paper --- (From pilgr & Tag is Caching) : Paper is a fast NoSQL data storage for Android that lets you save/restore Java objects by using efficient Kryo serialization and handling data structure changes automatically. [NoSQL型数据存取].
//application:Initialize Paper Paper.init(context); //Save: Paper.book().write("city", "Lund"); // Primitive Paper.book().write("task-queue", queue); // LinkedList Paper.book().write("countries", countryCodeMap); // HashMap //Read String city = Paper.book().read("city"); LinkedList queue = Paper.book().read("task-queue"); HashMap countryCodeMap = Paper.book().read("countries");
Running Benchmark on Nexus 4, in ms:
| Benchmark | Paper | Hawk | sqlite | |---------------------------|----------|----------|----------| | Read/write 500 contacts | 187 | 447 | | | Write 500 contacts | 108 | 221 | | | Read 500 contacts | 79 | 155 | |
3.Architecture:
xUtils --- (From wyouflf A developer from China) : a lightweight Android Architecture with orm/bitmap/http/view inject. One Line can call API. [一个android框架,含有:Http/View/DB/Bitmap,一行代码调用].
//DbUtils: DbUtils db = DbUtils.create(this); db.save(user); //ViewUtils: @ViewInject(R.id.textView) TextView textView; //HttpUtils:Get HttpUtils http = new HttpUtils(); http.send(HttpRequest.HttpMethod.GET, "http://www.lidroid.com", new RequestCallBack<String>(){ @Override public void onLoading(long total, long current, boolean isUploading) { testTextView.setText(current + "/" + total); } @Override public void onSuccess(ResponseInfo<String> responseInfo) { textView.setText(responseInfo.result); } @Override public void onStart() { } @Override public void onFailure(HttpException error, String msg) { } }); //BitmapUtils: BitmapUtils bitmapUtils = new BitmapUtils(this); bitmapUtils.display(testImageView, "http://bbs.lidroid.com/static/image/common/logo.png");
article
FRAGMENTARGS --- (From Author sockeqwe blog http://hannesdorfmann.com) --- [Source in Github]
Developing for Android is sometimes painful. You have to write lot of code to do simple things like setting up a Fragment. Fortunately java supports a powerful tool: Annotation Processors.
The Problem with Fragments is that you have to set arguments (the parameters) for a fragment to make them work correctly. Many new android developers that write the first fragment do something like this:[Translation:FragmentArgs(让你的Fragment的代码更少)讲解].
Chinese Translation Address : Thanks To KEVIN_CHEN
App-Demo
android-UniversalMusicPlayer --- (From googlesamples ) : This sample shows how to implement an audio media app that works across multiple form factors and provide a consistent user experience on Android phones, tablets, Auto, Wear and Cast devices. [一个google开源音乐播放器,适配不同的安卓系统环境,手机、手表和web端].
Check the Source in Github.
Video
Animation to Guide Us All --- (From touchlab on Youtube) : Animation to Guide Us All - How animations can improve the User Experience of your application[2015 Droidcon NYC开发者大会,聚焦Android-material design动画表现形态的演讲视频].
website
www.youtube.com --- (Build By Steve Chen&Chad Hurley&Jawed Karim,February 14, 2005) :YouTube is a video-sharing website headquartered in San Bruno, California, United States. The service was created by three former PayPal employees in February 2005. In November 2006, it was bought by Google for US$1.65 billion. YouTube now operates as one of Google's subsidiaries. [全球最大视频分享网站].