編輯:Android開發教程
在開發過程中,有時候,預先創建好數據庫比在程序運行時創建數據庫更加地高效。舉個例子,你想編寫 一個程序,這個程序把你去過的地方的坐標都顯示出來。這種情況下,預先創建數據庫是更加容易的,比在 運行時創建數據庫。
這裡,需要使用一些免費的工具。推薦使用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的幾個動畫(http://blog.csdn.net/qq_25193681/article/details/51777248),對A
上篇文章已經對Web Service及其相關知識進行了介紹(Android開發之WebService介紹 ),相信有的朋友 已經忍耐不住想試試在Android應用中調用W
QQ國際版 for Android 的最新版本(ver. 4.6.11)已經正式上線了。作為全球最流行的即時通信工具之一,QQ國際版的用戶已經覆蓋全球180多個國家和地區
在上一章節中,我們介紹了數據持久化的幾種方法:首選項,文件,以及數據庫。在保存復雜的數據結構 時,推薦使用SQliteDatabase。但是,共享數據就成了一種挑戰,因為