編輯:關於android開發
數據庫:SQLite(輕量級,嵌入式的數據庫)
大量的相似結構的數據的儲存,快速的查詢。特殊的文件(按照一定的格式生成)
數據庫的創建
創建文件
1.聲明文件對象,文件是不會被創建出來的。
File file = new File("文件名稱");
2.寫文件(文件才會被創建出來)
FileOutputStream fos = new FileOutputStream(file);
fos.write("hdahfdsaklfh".getbytes());
創建數據庫
1.實現SQLiteOpenHelper的子類PersonSQLiteOpenHelper
public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {
public PersonSQLiteOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
SQLiteOpenHelper的幾個參數的解釋如下:
android.database.sqlite.SQLiteOpenHelper.SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) Create a helper object to create, open, and/or manage a database. This method always returns very quickly. The database is not actually created or opened until one of getWritableDatabase or getReadableDatabase is called. Parameters: context to use to open or create the database name of the database file, or null for an in-memory database factory to use for creating cursor objects, or null for the default version number of the database (starting at 1); if the database is older, onUpgrade will be used to upgrade the database; if the database is newer, onDowngrade will be used to downgrade the database
2.getWritableDatabase/getReadableDatabase()
新建TestPersonDB.java
package com.wuyudong.db.test;
import com.wuyudong.db.PersonSQLiteOpenHelper;
import android.test.AndroidTestCase;
public class TestPersonDB extends AndroidTestCase {
public void testCreateDB() throws Exception {
PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper(getContext());
helper.getWritableDatabase();
}
}
3.onCreate() 數據庫第一次創建的執行的方法,適合做數據庫表結構的初始化
// Called when the database is created for the first time.
// 在數據庫第一次創建的時候執行的方法
// 如果數據庫已經創建完畢,就不會再去執行了。
// 適合做數據庫表結構的初始化操作
// db代表的就是當前的數據庫
@Override
public void onCreate(SQLiteDatabase db) {
// 初始化數據庫的表結構
db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))");
}
注意:
sqlite數據庫是一個嵌入式輕量級的數據庫,內部不區分數據類型的,不對數據的長度校驗。
新建AndroidTest工程test

將AndroidManifest.xml中的如下相關的代碼復制到本項目的AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wuyudong.db.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.wuyudong.db" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
復制後的代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wuyudong.db"
android:versionCode="1"
android:versionName="1.0" >
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.wuyudong.db" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner" />
<activity
android:name="com.wuyudong.db.MainActivity"
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>
項目結構如下:

PersonSQLiteOpenHelper.java完整代碼如下:
package com.wuyudong.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {
/**
* 定義一個數據庫創建的幫助類,裡面有兩個方法需要實現 相當於 file類
*
* @author Administrator
*
*/
public PersonSQLiteOpenHelper(Context context) {
// context 上下文
// person.db 數據庫文件名稱
// factory 游標工廠
// version 數據庫的版本號 從1開始
super(context, "person.db", null, 1);
// TODO Auto-generated constructor stub
}
// Called when the database is created for the first time.
// 在數據庫第一次創建的時候執行的方法
// 如果數據庫已經創建完畢,就不會再去執行了。
// 適合做數據庫表結構的初始化操作
// db代表的就是當前的數據庫
@Override
public void onCreate(SQLiteDatabase db) {
// 初始化數據庫的表結構
db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))");
}
// 當數據庫的版本號發生升級的時候調用。
// 數據庫只能升級不能降級。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
運行程序

打開person.db

Activity的四種啟動模式,activity四種模式
Activity的四種啟動模式,activity四種模式在多Activity開發中,有可能是自己應用之間的Activity跳轉,或者夾帶其他應用的可復用Activity。
Android 調用百度地圖API,androidapi
Android 調用百度地圖API,androidapi一、到 百度地圖開發平台下載SDK http://lbsyun.baidu.com/index.php?title
安卓圖片滑動,實現帶小點的導航頁面效果,安卓小點
安卓圖片滑動,實現帶小點的導航頁面效果,安卓小點今天給大家說說安卓中類似這樣的引導頁面怎麼實現,我自己簡單的添加了個跳過按鈕方便跳轉到主界面,圖片跟小點圖片資源大家自己去
對Android的惡意吐槽(勿看,有毒)
對Android的惡意吐槽(勿看,有毒) 我認為android系統中有一個特惡心人的大敗筆。就是這個大敗筆造成了android系統的卡卡卡不停。 這個大敗筆就是對ac