`
king_tt
  • 浏览: 2125767 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【Android 开发教程】预创建数据库

 
阅读更多

本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。

原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/


在开发过程中,有时候,预先创建好数据库比在程序运行时创建数据库更加地高效。举个例子,你想编写一个程序,这个程序把你去过的地方的坐标都显示出来。这种情况下,预先创建数据库是更加容易的,比在运行时创建数据库。

这里,需要使用一些免费的工具。推荐使用SQLite Database Browser,支持多平台,并且免费。下载地址: http://sourceforge.net/projects/sqlitebrowser/

下面是创建一个联系人表的例子。

在设计阶段把数据库建好,下一步,就是把数据库和程序捆绑在一起,这样,在运行时,就能使用数据库了。

1. 把数据库放在assets文件夹下面。

2. 把assets文件夹下面的数据库,复制到程序的安装路径下。

public class DatabasesActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        DBAdapter db = new DBAdapter(this);
        
        try {
            String destPath = "/data/data/" + getPackageName() +
                "/databases";
            File f = new File(destPath);
            if (!f.exists()) {             
             f.mkdirs();
                f.createNewFile();
             
             //---copy the db from the assets folder into 
             // the databases folder---
                CopyDB(getBaseContext().getAssets().open("mydb"),
                    new FileOutputStream(destPath + "/MyDB"));
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        //---get all contacts---
        db.open();
        Cursor c = db.getAllContacts();
        if (c.moveToFirst())
        {
            do {
                DisplayContact(c);
            } while (c.moveToNext());
        }
        db.close();
    }
    
    public void CopyDB(InputStream inputStream, 
    OutputStream outputStream) throws IOException {
        //---copy 1K bytes at a time---
        byte[] buffer = new byte[1024];
        int length;
        while ((length = inputStream.read(buffer)) > 0) {
            outputStream.write(buffer, 0, length);
        }
        inputStream.close();
        outputStream.close();
    }

    public void DisplayContact(Cursor c)
    {
        Toast.makeText(this,
                "id: " + c.getString(0) + "\n" +
                "Name: " + c.getString(1) + "\n" +
                "Email:  " + c.getString(2),
                Toast.LENGTH_LONG).show();
    }
}


3. 调试,用DDMS查看,数据库被复制到了指定的位置。

分享到:
评论

相关推荐

    新版Android开发教程.rar

    Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商...

    老罗android开发视频教程全集百度网盘下载

    【第一版第十三章】老罗Android开发视频--异步加载数据库(2集) 【第一版第十四章】老罗Android开发视频--多线程编程(7集) 【第一版第十五章】老罗Android开发视频--百度地图实战开发(10集)

    Android开发案例驱动教程 配套代码

    《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...

    Android基础教程

     《Android基础教程(第3版·修订版)》是一部关于Android开发的基础教程,采用Pragmatic系列图书一贯由浅入深、循序渐进的方式讲解了Android程序设计的核心概念和技术。书中不仅结合数独游戏开发案例形象生动地...

    Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版]

    Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版],这是一本不可多得的介绍使用delphi xe8开发iOS与Android移动应用的电子书,实用的技术开发教程与技术开发手册。 Delphi XE8跨平台开发让你使用一套...

    Delphi+Web前端开发教程基于TMS+WEB+Core框架.pdf

    《Delphi Web前端开发教程——基于TMS WEB Core框架》PDF本教程适合对使用Delphi TMS WEB Core 创建 Web 应用程序感兴趣的初学者和高级开发人员。学习本教程只需要免费的 Delphi 社区版以及 TMS WEB Core 的试用版就...

    android开发入门教程

    第14章 Android综合案例三——基于Android的豆瓣网(Web2.0)移动客户端开发 14.1 关于豆瓣网和豆瓣网API 14.1.1 豆瓣网介绍 14.1.2 豆瓣网API介绍 14.1.3 豆瓣网API认证 14.1.4 豆瓣网API快速入门 14.1.5 豆瓣网API...

    Android操作db4o数据库的例子

    最近学习db4o时参考网上的教程做的一个小程序,基于Android 2.2模拟器开发(所以模拟器最低版本也要是2.2). 简介: 1.直接在sd卡上建立数据库,而不是网上那种在data目录下创建,这样在实际应用中更方便移动数据库. 2....

    21天学习android开发教程之SQLite分页读取

    本文主要讲解了SQLite的基本用法,如:创建数据库,使用SQL命令查询数据表、插入数据,关闭数据库,以及使用GridView实现了一个分页栏(关于GridView的用法),用于把数据分页显示。 分页栏的pagebuttons.xml的源码...

    Android GreeDao学生管理系统教程

    在Android开发过程中,有时候我们需要使用SQLite数据库去本地存储一些临时文件,之前,我们的做法是通过SQLiteOpenHelper实现创建数据库,以及迭代开发中的数据库数据 内容 字段 变更时处理。然而现在有greedao就...

    Android相关.zip

    Android官方开发教程中文版(六) android基础入门学习 Android开发必备资料之50例源码汇总 Android开发环境搭建教程(图文) Android开发实例:打电话 Android开发实例:获取电话薄的信息 android数据库实例 ...

    Google.Android开发入门与实战

    本书作者较早就从事Android的研究与开发工作,为了帮助开发者更快地进入Android开发行列,他们不辞辛劳地编写了Android开发教程-《Google Android开发入门与实战》。本书系统讲解了Android软件开发的基础知识,...

    传智播客Android视频教程-课程源码.rar

    第一天 1>搭建Android开发环境 2> 创建与启动手机模拟器 3> 学习使用ANDROID操作系统 4> 开发与运行(卸载)第一个ANDROID应用 5> 项目的目录结构 6> 项目清单文件分析 7> 分析第一个ANDROID应用的启动过程 8> 电话拔...

    黎活明android教程的全程PPT

    第一天 1>搭建Android开发环境 2> 创建与启动手机模拟器 3> 学习使用ANDROID操作系统 4> 开发与运行(卸载)第一个ANDROID应用 5> 项目的目录结构 6> 项目清单文件分析 7> 分析第一个ANDROID应用的启动过程 8> ...

    8天快速掌握Android教程源码

    17_创建数据库与完成数据添删改查.avi 所在项目:db 18_在SQLite中使用事务.avi 所在项目:db 19_采用ListView实现数据列表显示.avi 所在项目:db 20_采用ContentProvider对外共享数据.avi 所在项目:db & other 21_...

    传智播客_Andorid教程_20天从零到精通Android开发视频_第04天

    传智播客_Andorid教程_20天从零到精通Android开发视频_第04天 内容如下 1、数据库介绍 2、mysql安装和卸载 3、通过sql操作数据库 4、通过sql创建和删除表结构 5、where条件查询使用 6、聚合函数,分组函数,limit...

    [Android项目视频教程]通讯录的开发源码视频讲解

    首先,需要熟悉Android的UI/UX设计原则,以创建出直观、易用的界面。通讯录的界面设计应该简洁明了,使用户能够快速找到所需的功能。 在数据存储方面,Android提供了SQLite数据库作为本地存储解决方案。开发者可以...

    Android开发宝典.rar

    创建一个内容提供器Creating a Content Provider 64 Content URI 总结 67 清单文件The AndroidManifest.xml File 68 清单文件结构Structure of the Manifest File 68 文件约定File Conventions 70 文件特性File...

    8天快速掌握Android系列视频之04_开发与 运行(卸载)第一个ANDROID应用

    总共67个视频教程,包括:02_搭建Android开发环境,03_创建与启动手机模拟器和学习使用ANDROID操作系统,04_开发与 运行(卸载)第一个ANDROID应用,05_项目的目录结构与安装及启动过程分析,06_电话拔号器,07_查看...

Global site tag (gtag.js) - Google Analytics