Stetho查看Afinal框架操作sqlite的数据库

来源:互联网 发布:java中的有参构造方法 编辑:程序博客网 时间:2024/05/16 09:50
Afinal框架
项目地址:https://github.com/yangfuhai/afinal  (里面有使用说明)
主要有四大模块:
 (1) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。
 (2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。
 (3) 网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能。
 (4) 图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。

 Stetho (真的很简洁高效)

StethoFacebook出品的一个强大的Android调试工具,使用该工具你可以在Chrome Developer Tools查看App的布局,网络请求,sqlite,preference,一切都可视化的操作,无须自己在去使用adb,也不需要root你的设备。

下面来看一个实例:

package com.example.liuyazhou.myfifthapplication;import android.app.Application;import com.facebook.stetho.Stetho;/** * Created by liuyazhou on 2016/9/17. */public class CustomApplication extends Application {    @Override    public void onCreate() {        super.onCreate();        Stetho.initializeWithDefaults(this);    }}
package com.example.liuyazhou.myfifthapplication;/** * Created by liuyazhou on 2016/9/17. */import java.util.Date;import java.util.List;import net.tsz.afinal.FinalActivity;import net.tsz.afinal.FinalDb;import net.tsz.afinal.annotation.view.ViewInject;import android.os.Bundle;import android.util.Log;import android.widget.Button;import android.widget.TextView;public class AfinalOrmDemoActivity extends FinalActivity {    @ViewInject(id=R.id.textView) TextView textView; //这里使用了afinal的ioc功能,以后将会讲到    @ViewInject(id=R.id.btn1 ,click="btnClick") Button button;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        FinalDb db = FinalDb.create(this);        User user = new User();        user.setEmail("afinal@tsz.net");        user.setName("探索者10");        user.setRegisterDate(new Date());        user.setMoney(100.0);        db.save(user);        List<User> userList = db.findAll(User.class);        Log.e("AfinalOrmDemoActivity", "用户数量:"+ (userList!=null?userList.size():0));        textView.setText(userList.get(0).getName()+":"+userList.get(0).getRegisterDate()+"----"+userList.get(0).getMoney());    }//onCreate()}
package com.example.liuyazhou.myfifthapplication;/** * Created by liuyazhou on 2016/9/17. */import java.util.Date;public class User {    private int id;    private String name;    private String email;    private Date registerDate;    private Double money;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public Date getRegisterDate() {        return registerDate;    }    public void setRegisterDate(Date registerDate) {        this.registerDate = registerDate;    }    public Double getMoney() {        return money;    }    public void setMoney(Double money) {        this.money = money;    }}
1  在build.gradle中的dependencies里面添加   compile 'com.facebook.stetho:stetho:1.3.1'  ,其他部分不动,修改后如下:

dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.4.0'    compile files('libs/afinal_0.5.1_bin.jar')    compile 'com.facebook.stetho:stetho:1.3.1' ///这样就不用专门在libs中加入.jar}
2  需要创建一个Application类,继承自 android.app.Application,比如本文中的CustomApplication

3  App运行后(我是在genymotion上运行的),在chrome浏览器中输入网址 chrome://inspect/#devices ,点击 inspect 即能看到sqlite的数据,同时支持sqlite语句操作

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.liuyazhou.myfifthapplication">    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:name="CustomApplication"        android:theme="@style/AppTheme">        <activity            android:name=".AfinalOrmDemoActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>










0 0
原创粉丝点击