Yang Hui kyze8439690
-
Netease
- Guangzhou China
- Sign in to view email
- http://yanghui.name
View proguard-rules.txt
-optimizationpasses 5 | |
# 混淆时不会产生形形色色的类名 | |
-dontusemixedcaseclassnames | |
# 指定不去忽略非公共的类库 | |
-dontskipnonpubliclibraryclasses | |
# 不预校验 | |
-dontpreverify |
View gist:5bafc99a65a0f4298db3
1.debug false | |
2.sign true | |
3.test proguard | |
4.change version code | |
5.upload new apk to umeng and test update works | |
6.merge master to release branch | |
7.upload new apk to appstores |
View ActivityLifecycleLogger.java
//call if(BuildConfig.DEBUG) registerActivityLifecycleCallbacks(new ActivityLifecycleLogger()) in your own Application class. | |
public class ActivityLifecycleLogger implements Application.ActivityLifecycleCallbacks { | |
private static final String TAG = "LifeCycleLogger"; | |
private static final Class[] LOG_CYCLE_ACTIVITIES = new Class[] { | |
//add activities you want to log here | |
MainActivity.class | |
}; |
View PermissionUtils
import android.app.Activity; | |
import android.content.DialogInterface; | |
import android.content.pm.PackageManager; | |
import android.support.annotation.NonNull; | |
import android.support.annotation.Nullable; | |
import android.support.annotation.StringRes; | |
import android.support.v4.app.ActivityCompat; | |
import java.util.Map; |
View gist:8eb2da153cd207cd330b
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR1) { | |
task.execute(); | |
} else { | |
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); | |
} |
View GridFragment.java
package android.support.v4.app; | |
import android.content.Context; | |
import android.os.Bundle; | |
import android.os.Handler; | |
import android.view.Gravity; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.view.animation.AnimationUtils; |
View StackPageTransformer.java
import android.support.v4.view.ViewPager; | |
import android.view.View; | |
public class StackPageTransformer implements ViewPager.PageTransformer { | |
@TargetApi(Build.VERSION_CODES.HONEYCOMB) | |
public void transformPage(View page, float position) { | |
final float alpha; | |
final float translationX; |
View build.gradle
//compile all jar in libs folder | |
dependencies { | |
compile fileTree(dir: 'libs' , include: '*.jar') | |
} | |
//pack all so file into a jar and compile it | |
task nativeLibsToJar( | |
type: Zip, | |
description: 'create a jar archive of the native libs') { | |
destinationDir file('./libs') | |
baseName 'native-libs' |
View SelectorImageView.java
import android.annotation.TargetApi; | |
import android.content.Context; | |
import android.graphics.Canvas; | |
import android.graphics.drawable.Drawable; | |
import android.os.Build; | |
import android.support.annotation.NonNull; | |
import android.util.AttributeSet; | |
import android.widget.ImageView; | |
import me.yugy.app.timeline.R; |
View CursorAdapter2
package me.yugy.cnbeta.widget; | |
import android.content.Context; | |
import android.database.ContentObserver; | |
import android.database.Cursor; | |
import android.database.DataSetObservable; | |
import android.database.DataSetObserver; | |
import android.os.Handler; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.ViewGroup; |