Skip to content

Instantly share code, notes, and snippets.

View showsky's full-sized avatar
👋
Hello World~

Ting Cheng showsky

👋
Hello World~
View GitHub Profile
@showsky
showsky / parse.php
Created January 27, 2014 03:22
parse real url and video info
<?php
/**
* 解析 视频信息 类
*
* 支持 优酷, 土豆 酷6 56 新浪 qq播客 乐视 乐视
**/
class class_video{
// 超时时间
@showsky
showsky / ViewHolder.java
Created February 3, 2014 09:04
Android improve BaseAdapter reuse ViewHolder
public class ViewHolder {
// I added a generic return type to reduce the casting noise in client code
@SuppressWarnings("unchecked")
public static <T extends View> T get(View view, int id) {
SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();
if (viewHolder == null) {
viewHolder = new SparseArray<View>();
view.setTag(viewHolder);
}
@showsky
showsky / build.gradle
Last active August 29, 2015 13:56
How to bundle *.so to APK use Gradle or Android studio
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
destinationDir file("$buildDir/native-libs")
baseName "native-libs"
extension "jar"
from fileTree(dir: "libs", include: "**/*.so")
into "lib/"
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
@showsky
showsky / ClientActivity.java
Created February 12, 2014 03:13
Android Messenger sample (1. Server app 2. Client app)
private Messenger mService;
final Messenger mMessenger = new Messenger(new Handler() {
@Override
public void dispatchMessage(Message msg) {
switch (msg.what) {
case SERV_RES_HAHA:
String s = msg.getData().getString("msg");
Bundle data = new Bundle();
@showsky
showsky / MainActivity.java
Created February 12, 2014 08:38
AsyncTask safe stop
/*
在使用 AsyncTask 停止常常被人忽略的問題以下兩種。
1. 呼叫了 cancel() 但是沒有馬上停止而造成其他 crash。
2. Activity 已經被 onDestory 但是 AsyncTask 沒有被 cancel 造成 crash。
*/
public class MainActivity extends Activity {
private final static String TAG = "MainActivity";
@showsky
showsky / ParseResourceID.java
Last active August 29, 2015 13:57
Parse Resource ID in the export Android jar
public class ParseResourceID {
public static int getIdByName(Context context, String className, String name) {
String packageName = context.getPackageName();
Class r = null;
int id = 0;
try {
r = Class.forName(packageName + ".R");
Class[] classes = r.getClasses();
@showsky
showsky / ThreadTask.class
Created May 8, 2014 07:49
Async use handlerThread non-block system async
public abstract class ThreadTask<Params, Progress, Result> {
private HandlerThread mHandlerThread;
private TaskHandler mHandler;
private TaskHandler mUiHandler;
private Params[] mParams;
public ThreadTask() {
mHandlerThread = new HandlerThread("ThreadTask", android.os.Process.THREAD_PRIORITY_BACKGROUND);
mHandlerThread.start();
@showsky
showsky / OkStack.java
Created May 27, 2014 07:08
Volley network core use OkHttp
public class OKStack implements HttpStack {
OkHttpClient client = new OkHttpClient();
public static final String HEADER_CONTENT_TYPE = "Content-Type";
@Override
public HttpResponse performRequest(Request<?> request, Map<String, String> additionalHeaders) throws IOException,
AuthFailureError {
URL url = new URL(request.getUrl());
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
@showsky
showsky / APIResultReceive.java
Created June 12, 2014 07:55
Android IntentService < ---- > Activity status callback
package com.example.resultrecevie;
import android.os.Bundle;
import android.os.Handler;
import android.os.ResultReceiver;
public class APIResultReceive extends ResultReceiver {
private final static String TAG = "APIResultReceive";
public final static int API_START = 1;