便于之后的开发与维护,开发Android程序的时候,在一开始就加入下面的东西
(1)自定义Application,例如MyAplication
public class MyApplication extends Application { private static Context context; @Override public void onCreate() { context = getApplicationContext(); } public static Context getContext() {//全局获取 Context, MyApplication.getContext() return context; } }
(2)定义BaseActivity继承于Activity,之后项目中所有要继承Activity的都继承于BaseActivity
public class BaseActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { super.onCreate(savedInstanceState, persistentState);//管理Acitivity来知晓当前是在哪一个活动
Log.e("BasicActivity",getClass().getSimpleName());}}
详细介绍:http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820702&idx=1&sn=f58abdeeb6453d73be2031e5ba736add&scene=0#wechat_redirect
(3)加入自定义Log打印工具
参考:http://blog.csdn.net/qq_30716173/article/details/50778600
(4)加入异常捕获
参考:http://blog.csdn.net/qq_30716173/article/details/50896480
(5)加入activity管理类:
/** * app管理类 对应用的activity进行控制 * * @author Huangnan */ public class AppManager { private static AppManager manager; private Stack<Activity> activityStack; private AppManager() { } //单例 public static AppManager getInstance() { if (manager == null) { synchronized (AppManager.class) { if (manager == null) { manager = new AppManager(); } } } return manager; } /** * 添加Activity到堆栈 */ // Stack <Activity> activityStack; public void addActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<Activity>(); } activityStack.add(activity); } /** * 获取当前Activity(堆栈中最后一个压入的) */ public Activity currentActivity() { Activity activity = activityStack.lastElement(); return activity; } /** * 结束当前Activity(堆栈中最后一个压入的) */ public void finishActivity() { Activity activity = activityStack.lastElement(); finishActivity(activity); } /** * 结束指定的Activity */ public void finishActivity(Activity activity) { if (activity != null) { activityStack.remove(activity); activity.finish(); activity = null; } } /** * 结束指定类名的Activity */ public void finishActivity(Class<?> cls) { for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { finishActivity(activity); } } } /** * 结束所有Activity */ public void finishAllActivity() { for (int i = 0; i < activityStack.size(); i++) { if (null != activityStack.get(i)) { activityStack.get(i).finish(); } } activityStack.clear(); } /** * 退出应用程序 */ public void AppExit(Context context) { try { finishAllActivity(); ActivityManager activityMgr = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); activityMgr.killBackgroundProcesses(context.getPackageName()); System.exit(0); } catch (Exception e) { } } }
在BasicActivity中加入当前Activity
public class BasicActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
AppManager.getInstance().addActivity(this);
}
}
androidStudio打包apk后自动更改名字
applicationVariants.all { variant -> if (variant.buildType.name.equals('release')){ variant.outputs.each { output -> def appName = 'yunlv_flyshopping' def oldFile = output.outputFile def releaseApkName releaseApkName = appName + '.apk' output.outputFile = new File(oldFile.parent, releaseApkName) } } }