人人网官方Android客户端源码分析(1)
2011-11-29 22:00
351 查看
ContentProvider是不同应用程序之间进行数据交换的标准API,ContentProvider以某种Uri的形式对外提供数据,允许其他应用访问或修改数据;其他应用程序使用ContentResolver根据Uri去访问操作指定数据。
人人网Android客户端也是使用ContentProvider对需要保存于Android客户端的数据进行管理。
1. renren.db
SQLLiteOpenHelper是Android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新。一般的用法是创建SQLiteOpenHelper的子类,并扩展它的onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)方法。
人人网Android客户端使用该方法创建及修改用户手机中的人人网数据库(renren.db)。
下面是RenRenProvider$DatabaseHelper的代码:
public class RenRenProvider$DatabaseHelper extends SQLiteOpenHelper {
public RenRenProvider$DatabaseHelper(Context context) {
super(context, "renren.db", null, 71);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE pic (_id INTEGER PRIMARY KEY,url TEXT UNIQUE ON CONFLICT REPLACE,_data TEXT,size INTEGER);");
db.execSQL("CREATE TABLE account (_id INTEGER PRIMARY KEY,uid INTEGET,account TEXT UNIQUE ON CONFLICT REPLACE,pwd TEXT,proxy INTEGER,sessionkey TEXT,srt_key TEXT,ticket TEXT,name TEXT,headphoto BLOB,isdefault INTEGER,last_login INTEGER,friend_count
INTEGER);");
db.execSQL("CREATE TABLE home (_id INTEGER PRIMARY KEY,item_id INTEGER UNIQUE ON CONFLICT REPLACE,data BLOB);");
db.execSQL("CREATE TABLE profile (_id INTEGER PRIMARY KEY,type INTEGER UNIQUE ON CONFLICT REPLACE,data BLOB);");
db.execSQL("CREATE TABLE friends (_id INTEGER PRIMARY KEY,uid INTEGER UNIQUE ON CONFLICT REPLACE,username TEXT,headurl TEXT,doing TEXT,nameindex TEXT,namepinyin TEXT,friendgroup TEXT,network TEXT,gender TEXT,isfriend INTEGER,suggest_text_1 TEXT,suggest_intent_query
TEXT);");
db.execSQL("CREATE TABLE messages (_id INTEGER PRIMARY KEY,messageid INTEGER UNIQUE ON CONFLICT REPLACE,message BLOB);");
db.execSQL("CREATE TABLE favorites (_id INTEGER PRIMARY KEY,favoriteid BIGINT UNIQUE ON CONFLICT REPLACE,favoriteowner INTEGER,type INTEGER,favorite BLOB);");
db.execSQL("CREATE TABLE emonticons (_id INTEGER PRIMARY KEY,url TEXT,emotion TEXT UNIQUE ON CONFLICT REPLACE,img BLOB,size INTEGER,_data TEXT);");
db.execSQL("CREATE TABLE favoritefriends (_id INTEGER PRIMARY KEY,owner INTEGER,uid INTEGER,name TEXT);");
db.execSQL("CREATE TABLE chathistory (_id INTEGER PRIMARY KEY,uid INTEGER,tochatid INTEGER,chatmessage TEXT,comefrom INTEGER,chatname TEXT,chattime LONG);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS pic");
db.execSQL("DROP TABLE IF EXISTS account");
db.execSQL("DROP TABLE IF EXISTS home");
db.execSQL("DROP TABLE IF EXISTS profile");
db.execSQL("DROP TABLE IF EXISTS friends");
db.execSQL("DROP TABLE IF EXISTS messages");
db.execSQL("DROP TABLE IF EXISTS favorites");
db.execSQL("DROP TABLE IF EXISTS emonticons");
db.execSQL("DROP TABLE IF EXISTS favoritefriends");
db.execSQL("DROP TABLE IF EXISTS favoritefriends");
db.execSQL("DROP TABLE IF EXISTS chathistory");
onCreate(db);
}
}
复制代码
从代码中我们可以看到人人网Android客户端在用户手机上创建了renren.db数据库,数据库中共有10张表,分别为pic、account、home、profile、friends、messages、favorites、emonticons、favoritefriends、chathistory。
http://www.apkway.com/forum.php?mod=viewthread&tid=4837
人人网Android客户端也是使用ContentProvider对需要保存于Android客户端的数据进行管理。
1. renren.db
SQLLiteOpenHelper是Android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新。一般的用法是创建SQLiteOpenHelper的子类,并扩展它的onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)方法。
人人网Android客户端使用该方法创建及修改用户手机中的人人网数据库(renren.db)。
下面是RenRenProvider$DatabaseHelper的代码:
public class RenRenProvider$DatabaseHelper extends SQLiteOpenHelper {
public RenRenProvider$DatabaseHelper(Context context) {
super(context, "renren.db", null, 71);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE pic (_id INTEGER PRIMARY KEY,url TEXT UNIQUE ON CONFLICT REPLACE,_data TEXT,size INTEGER);");
db.execSQL("CREATE TABLE account (_id INTEGER PRIMARY KEY,uid INTEGET,account TEXT UNIQUE ON CONFLICT REPLACE,pwd TEXT,proxy INTEGER,sessionkey TEXT,srt_key TEXT,ticket TEXT,name TEXT,headphoto BLOB,isdefault INTEGER,last_login INTEGER,friend_count
INTEGER);");
db.execSQL("CREATE TABLE home (_id INTEGER PRIMARY KEY,item_id INTEGER UNIQUE ON CONFLICT REPLACE,data BLOB);");
db.execSQL("CREATE TABLE profile (_id INTEGER PRIMARY KEY,type INTEGER UNIQUE ON CONFLICT REPLACE,data BLOB);");
db.execSQL("CREATE TABLE friends (_id INTEGER PRIMARY KEY,uid INTEGER UNIQUE ON CONFLICT REPLACE,username TEXT,headurl TEXT,doing TEXT,nameindex TEXT,namepinyin TEXT,friendgroup TEXT,network TEXT,gender TEXT,isfriend INTEGER,suggest_text_1 TEXT,suggest_intent_query
TEXT);");
db.execSQL("CREATE TABLE messages (_id INTEGER PRIMARY KEY,messageid INTEGER UNIQUE ON CONFLICT REPLACE,message BLOB);");
db.execSQL("CREATE TABLE favorites (_id INTEGER PRIMARY KEY,favoriteid BIGINT UNIQUE ON CONFLICT REPLACE,favoriteowner INTEGER,type INTEGER,favorite BLOB);");
db.execSQL("CREATE TABLE emonticons (_id INTEGER PRIMARY KEY,url TEXT,emotion TEXT UNIQUE ON CONFLICT REPLACE,img BLOB,size INTEGER,_data TEXT);");
db.execSQL("CREATE TABLE favoritefriends (_id INTEGER PRIMARY KEY,owner INTEGER,uid INTEGER,name TEXT);");
db.execSQL("CREATE TABLE chathistory (_id INTEGER PRIMARY KEY,uid INTEGER,tochatid INTEGER,chatmessage TEXT,comefrom INTEGER,chatname TEXT,chattime LONG);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS pic");
db.execSQL("DROP TABLE IF EXISTS account");
db.execSQL("DROP TABLE IF EXISTS home");
db.execSQL("DROP TABLE IF EXISTS profile");
db.execSQL("DROP TABLE IF EXISTS friends");
db.execSQL("DROP TABLE IF EXISTS messages");
db.execSQL("DROP TABLE IF EXISTS favorites");
db.execSQL("DROP TABLE IF EXISTS emonticons");
db.execSQL("DROP TABLE IF EXISTS favoritefriends");
db.execSQL("DROP TABLE IF EXISTS favoritefriends");
db.execSQL("DROP TABLE IF EXISTS chathistory");
onCreate(db);
}
}
复制代码
从代码中我们可以看到人人网Android客户端在用户手机上创建了renren.db数据库,数据库中共有10张表,分别为pic、account、home、profile、friends、messages、favorites、emonticons、favoritefriends、chathistory。
http://www.apkway.com/forum.php?mod=viewthread&tid=4837
相关文章推荐
- 人人网官方Android客户端源码分析(2)
- 人人网官方Android客户端源码分析(3)
- 人人网官方Android客户端源码分析(1)
- git-osc-android客户端之源码分析1
- git-osc-android客户端之源码分析4
- android adb 源码框架分析(5 客户端)
- ECClient红孩子android客户端源码分析之图片加载自动刷新listview
- 开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start
- Androidpn 消息推送安卓客户端源码分析
- bVNC 客户端源码分析(android)
- Android之开源中国客户端源码分析(一)
- 开源中国 OsChina Android 客户端源码分析(8)数据库Sqlite
- 开源中国 OsChina Android 客户端源码分析(2)滑动菜单DrawerLayout
- xmpp/aSmack源码分析(基于android客户端)
- 开源中国 OsChina Android 客户端源码分析(7)二维码生成对话框
- 开源中国 OsChina Android 客户端源码分析(11)缓存对象
- 【开源中国Android客户端】源码分析(二)网络数据传输接口
- 开源中国 OsChina Android 客户端源码分析(10)双击退出程序
- 开源中国 OsChina Android 客户端源码分析(12)清理缓存