admin 管理员组

文章数量: 887031

Android,程序反编译后的打包发布

android对于打包中遇到的反射的问题

(大虾请飘过........ )

1:本人生活比较懒,今天将懒也发挥到了程序上

哎,开发android一会了,今天发现好多代码都是一样的,比如举例为:刚开始一个数据库,增加一个table1,就要为该表写最简单的增删改查的操作,增加一个table2的时候又要写这些东西,哎这种代码,看的哥蛋疼,于是决定赖一下下;呵呵

2:对java的反射机制和注释有一定的基础

该文章设计到的基本类,DBUtils,以及table1,table2,数据库对象表模型的基类DBTable; 首先DBUtils如下:
public class DBUtils {private static DBUtils			instance;static final String				FAILED	= "{\"result\":\"-1\"}";static final String				SUCESS	= "{\"result\":\"0\"}";private static QDWDBSuper		mQDWDB;private static SQLiteDatabase	database;public static void initDatabase(SQLiteDatabase db) {DBUtils.database = db;}/*** 创建数据库* * @param userID* @return*/public boolean createDB(int userID) {return mQDWDB.createDB(userID);}/*** 判断数据库是否存在* * @param userID* @return*/public boolean dbExists(int userID) {return mQDWDB.dbExists(userID);}/*** 刪除数据库* * @param type* @param userID* @return*/public boolean deleteDB(int userID) {boolean result = mQDWDB.deleteDB(userID);mQDWDB = null;return result;}/*** 调用dbuser之前确保用户已经登陆,否则该单例返回错误*/public static DBUtils getInstance(QDWDBSuper dbSuper) {if (mQDWDB == null || mQDWDB != dbSuper) {synchronized (DBUtils.class) {if (mQDWDB != dbSuper) {mQDWDB = dbSuper;instance = new DBUtils();}}}return instance;}public DBUtils() {database = mQDWDB.getDBWriteBase();}private boolean isNull() {return database == null ? false : true;}/*** 建表,必须带主键* * @param clazz* @return*/public String create(Class<? extends DBTable> clazz) {if (!isNull()) {return FAILED;}Table table = clazz.getAnnotation(Table.class);if (table == null) {return FAILED;}ContentValues values = new ContentValues();String key = "";Field[] fields = clazz.getDeclaredFields();for (Field field : fiel

本文标签: Android 程序反编译后的打包发布