加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 19:27:49 所属栏目:百科 来源:网络整理
导读:Afinal框架 项目地址:https://github.com/yangfuhai/afinal (里面有使用说明) 主要有四大模块: (1) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。 (2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需fin
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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读