开源中国 OsChina Android 客户端源码分析(8)数据库Sqlite

1开源中国客户端使用的数据库部分的源码在net.oschina.app.db包下,两个类一个是用于管理数据库的创建类DatabaseHelper,继承SQLiteOpenHelper,另一个是用于数据库的增删改查的工具类NoteDatabase。那么数据库在开源中国源码中哪一模块用到了呢? 便签管理,便签是什么?就是一个记事本的功能o(^▽^)o

2关于SQLiteOpenHelper的使用,自己之前的项目中没有用到过,看了下,这里有个体会:当获取到SQLiteOpenHelper实例,并使用getWritableDatabase或者getReadableDatabase打开数据库时,如果数据库没有建立,则建立数据库,并回调oncreate方法,那么数据库建立好了,我们就可以在oncreate方法里完成数据表的建立或者数据的初始化。

3既然要创建数据库,那么数据库的名字,初始化建立的表,版本号这些参数,就需要在SQLiteOpenHelper类中声明。

4在数据库的增删改查的工具类NoteDatabase中,我们发现采用了组合的方式,在其构造函数中完成了SQLiteOpenHelper实例化,这样在内部声明的方法中,我们就可以直接使用SQLiteOpenHelper对象获取SqliteDatebase对象执行相应的SQL语句。

5使用步骤:

5.1获取SqliteDatebase对象(打开数据库);

5.2声明SQL语句;

5.3执行SQL语句;

5.4关闭数据库;

6数据库中队查询结果的获取,通过Cursor 来获取,这是什么玩意??? 就是个数据集合。

时间: 2024-10-26 08:40:04

开源中国 OsChina Android 客户端源码分析(8)数据库Sqlite的相关文章

开源中国 OsChina Android 客户端源码分析(9)下载APK功能

源码中用以下载客户端的类为DownloadService,是一个服务.如果你对android服务不够理解的话,建议先查阅下有关服务的知识点.源码分析如下: 1首先我们先来看下该服务中几个重写的方法: 1.1onCreate()中 首先声明了自定义的绑定器对象,并在自定义的绑定器中添加了几个界面可以访问服务的方法,我们发现在这几个方法中,目前实际用到的start()方法用以开始下载APK,其他的没有用到.获取通知管理器.设置服务为 非前台服务.代码注释中,火蚁表明了不确定性. 其实如果将服务设置为

开源中国 OsChina Android 客户端源码分析(12)清理缓存

上一篇中 缓存对象中我们提到了,将对象数据缓存的地方有三个地方,这里我们详细的说下: 1(/data/data/com.xxx.xxx/cache) 应用私有的缓存目录,属于内部缓存,其他应用无法访问,一般存储较小的数据: 2(/mnt/sdcard/android/data/com.xxx.xxx/cache),应用私有的外部缓存目录. 3SD卡下的自定义目录,共用的. 要实现清除缓存,那么首先你需要知道: 1应用是否采用了缓存策略: 2缓存的数据是什么,在哪里进行了缓存? 3缓存大小的计算实

开源中国 OsChina Android 客户端源码分析(10)双击退出程序

在源码中,火蚁完全封装了  双击退出程序的功能 : DoubleClickExitHelper类 该类的源码分析如下: 1  构造函数中传入了 设备上下文,实现退出功能的界面,完成消息处理器的初始化:既然要有提示条,那么也需要一个Toast对象. 2 既然完全封装,那么 我们需要将 按键的事件及按键码传进去,因为界面重写的onKeyDown 事件需要返回一个boolean值,那么在DoubleClickExitHelper类中也自定义了一个返回布尔值的onKeyDown 函数. 3onKeyDo

开源中国 OsChina Android 客户端源码分析(3)可以拖拽的ScrollView

oschina客户端滑动菜单的View的布局使用了可以拖拽的ScrollView,类文件为CustomerScrollView. 1 我们需要分析下为什么要用ScrollView?用过的其实很容易理解避免其内部的子View的布局较大,在较小设备上无法完全显示. 2实现可拖拽的效果,只是从用户体验角度去考虑的,接下来我们详细分析下其自定义的ScrollView. 2.1拖拽的目标是ScrollView内的菜单的布局View,所以在CustomerScrollView内的onFinishInflat

开源中国 OsChina Android 客户端源码分析(2)滑动菜单

1滑动菜单oschina使用了android.support.v4.widget.DrawerLayout,之前没有用过这个控件,百度了下,大致了解如下: 1.1类似与LinearLayout,就是一个布局控件. 1.2使用时,其有两部分组成,主内容VIEW和菜单内容VIEW,并且主内容必须放在菜单内容的前面,才能让DrawerLayout识别谁是菜单的部分,其宽高都需要设置成match_parent.此处的主内容部分是什么?其实就是主界面上的用以显示各个fragment和底部的导航部分,所以o

开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start

1启动界面的布局文件为app_start.xml ,对应的类文件为net.oschina.app 包下的AppStart.java. 2对于布局文件而言,因为只显示一张主题图片,因此布局简单直接设置背景图片.因为是启动界面,启动时会有短暂的卡顿,对于用户而言体验不好,因此在配置文件中自定义了style ,黑色 无标题 全屏(为什么选黑色的呢?是不是因为背景图图片是白的,衬托的更亮白呢?^_^).设置了背景图片和无标题 <style name="Theme.AppStartLoad"

开源中国 OsChina Android 客户端源码分析(4)自定义对话框

OsChina在主界面底部导航处设置了快速操作的对话框,图示: OsChina采用了Dialog的方式实现,有些人可能会用到popupwindow去实现.通过分析其实现原理,来学到对自己有用的东西. 1布局文件,dialog_quick_option.xml,布局代码不难 2自定义了对话框类QuickOptionDialog: 2.1在构造函数中加载了自定义的对话框的布局文件,初始化控件,完成了快速图片按钮的旋转动画(quick_option_close.xml).此处觉得应该把这部分工作放到o

[Android]Volley源码分析(四)

上篇中有提到NetworkDispatcher是通过mNetwork(Network类型)来进行网络访问的,现在来看一下关于Network是如何进行网络访问的. Network部分的类图: Network有一个实现类BasicNetwork,它有一个mHttpStack的属性,实际的网络请求是由这个mHttpStack来进行的,看BasicNetwork的performRequest()方法, 1 @Override 2 public NetworkResponse performRequest

Android IntentService 源码分析

IntentService简介: IntentService是一个通过Context.startService(Intent)启动可以处理异步请求的Service,使用时你只需要继承IntentService和重写其中的onHandleIntent(Intent)方法接收一个Intent对象,该服务会在异步任务完成时自动停止服务. 所有的请求的处理都在IntentService内部工作线程中完成,它们会顺序执行任务(但不会阻塞主线程的执行),某一时刻只能执行一个异步请求. IntnetServi