room的集成

添加依赖

api 'androidx.room:room-runtime:2.2.3'annotationProcessor 'androidx.room:room-compiler:2.2.3'

第一步:首先创建一个表结构:

/** * Created by malei on 2019-12-20 * Describe: */@Entity(tableName = UserTable.TABLE)public class UserTable {    public static final String TABLE = "user_table";    @PrimaryKey  //定义主键    public long id;    @ColumnInfo(name = "name") //定义数据表中的字段名    public String name;    @ColumnInfo(name = "sex")    public String sex;    @Ignore         //指示Room需要忽略的字段或方法    public String ignoreText;    @Override    public String toString() {        return "UserTable{" +                "id=" + id +                ", name='" + name + '\'' +                ", sex='" + sex + '\'' +                ", ignoreText='" + ignoreText + '\'' +                '}';    }}

第二步:dao结构

/** * Created by malei on 2019-12-20 * Describe: */@Daopublic interface UserDao {    @Insert(onConflict = OnConflictStrategy.REPLACE)    void insertUsers(UserTable... entities);    @Update(onConflict = OnConflictStrategy.REPLACE)    int updateUsers(UserTable... users);    @Query("SELECT * FROM " + UserTable.TABLE + " WHERE id LIKE :id")    UserTable find(long id);    @Delete    void deleteUsers(UserTable... users);    @Query("SELECT * FROM "+ UserTable.TABLE)    UserTable[] findAllUsers();    @Query("SELECT * FROM "+ UserTable.TABLE + " WHERE name LIKE :name " )    List findUserByName(String name);}

第三步:创建一个 RoomDatabase实例:

/** * Created by malei on 2019-12-20 * Describe:返回数据库表的持有者 */@Database(entities = {UserTable.class}, version = 1)public abstract class AppDatabase extends RoomDatabase {    public abstract UserDao userDao();}

第四步:封装工具类:

/** * Created by malei on 2019-12-20 * Describe: */public class RoomFactory {    private static final String DB_NAMWE = "mydatabase.db";    public volatile static AppDatabase mAppDatabase;    private RoomFactory() {    }    private static class Holder {        private static RoomFactory instance = new RoomFactory();    }    public static RoomFactory getInstance() {        return Holder.instance;    }    public void init(Application application) {        mAppDatabase = Room.databaseBuilder(application, AppDatabase.class, DB_NAMWE)                .allowMainThreadQueries() //支持主线程                .build();    }    public AppDatabase getDatabase(){        return RoomFactory.mAppDatabase;    }}

stetho的集成

在gradle中配置dependencies:

dependencies {// Stetho corecompile 'com.facebook.stetho:stetho:1.3.1'//If you want to add a network helpercompile 'com.facebook.stetho:stetho-okhttp3:1.3.1'}

自定义一个MyApplication继承Application,在onCreate中初始化stetho:

public class MyApplication extends Application {     @Override    public void onCreate() {        super.onCreate();        init();    }     private void init(){        Stetho.initializeWithDefaults(this);        new OkHttpClient.Builder()                .addNetworkInterceptor(new StethoInterceptor())                .build();    }}

接着运行app到手机上。

然后打开chrome,输入网址chrome://inspect

更多相关文章

  1. Android 自定义拨打电话程序段
  2. 查看android目录结构
  3. Android中定义接口的用法
  4. Android:TextView自定义删除线
  5. Android 自定义Gif动画
  6. Android 自定义ImageView,支持圆角和直角
  7. android:滑动挂断自定义View的简单实现
  8. 关于Android的Accessibility--自定义View

随机推荐

  1. Android左右滑动切换图片
  2. Android实现手势缩放图片
  3. Android上层怎样读写proc节点(示例)
  4. early_param("earlyprintk", setup_early
  5. android下为自己定义wifimanager类
  6. View 绘制机制 -- How Android(安卓)Draw
  7. 一维byte数组旋转
  8. 使用Notification发送消息通知
  9. Android(安卓)TextView 一些字体颜色、大
  10. Android录音,拍照,摄像