APSYS 2014
Beijing, China
Constraints
Solution
public interface Blade {
void onCreate(Activity activity, Bundle savedInstanceState);
void onStart(Activity activity);
void onResume(Activity activity);
void onPause(Activity activity);
void onStop(Activity activity);
void onDestroy(Activity activity);
boolean onKeyDown(Activity activity, int keyCode, KeyEvent event);
boolean onKeyLongPress(Activity activity, int keyCode, KeyEvent event);
boolean onKeyUp(Activity activity, int keyCode, KeyEvent event);
}
public class AdsBlocker extends AbstractBlade {
public void onCreate(Activity activity, Bundle savedInstanceState) {
View rootView = activity.findViewById(android.R.id.content);
/** Iterate over all children **/
if (v.getType().equals("com.google.ads.AdView")) {
((ViewGroup) v.getParent()).removeView(v);
}
}
}
public class AddEventHandler extends AbstractBlade {
public void onCreate(Activity activity, Bundle savedInstanceState) {
View rootView = activity.findViewById(android.R.id.content);
rootView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/** DO SOMETHING **/
}
});
}
}
Goals:
Blade | LOC |
---|---|
Ad Blocker | 52 |
Social Media Plugin | 30 + 90 |
QuizCheater | 79 |
Record & Replay | 292 |