Step 1 - 建立 Android Application
這裡假設你已經在 Android Studio 中建立一個新的 Android Application,如果還沒有的話,請先建立一個新的 Android Application。
新建立好的 Android Application 的結構應如下:
├── app
│ ├── build.gradle
│ ├── libs
│ └── src
│ ├── androidTest
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── cloudchen
│ │ └── com
│ │ └── daodemoexample
│ │ └── MainActivity.java
│ └── res
│
├── build.gradle
└── settings.gradle
* created under Android Studio 1.1 perview 1
Step 2 - 建立 DaoGenerator Module
File-->New Module...
選擇More Modules中的Java Library
填入對應的資訊
Step 3 - 編輯 DaoGenerator
執行到 Step 2 後,現在的資料夾結構應該像下圖這樣,有一個我們原本的 app module (Android Application),以及一個剛剛建立好的 daogenerator module (Java Library),並且新增了一個屬於 daogenerator module 的build.gradle檔案
編輯 build.gradle
因為這個daogeneratormodule 必須用到DaoGenerator這個由greenrobot所開發的 library,故我們必須編輯我們的daogenerator/build.gradle檔案,加入下面的相依套件:
dependencies{compilefileTree(dir:'libs',include:['*.jar'])// add DaoGeneratorcompile'de.greenrobot:DaoGenerator:1.3.0'}
編輯 MyDaoGenerator.java
設定好build.gradle檔案之後,就可以開始利用DaoGenerator來編寫我們的 Schema 了,譬如建立一個 User 資料表:
packagecom.cloudchen;
importjava.io.IOException;
importjava.nio.file.Files;
importjava.nio.file.LinkOption;
importjava.nio.file.Path;
importjava.nio.file.Paths;
importjava.nio.file.attribute.FileAttribute;
importjava.nio.file.attribute.PosixFilePermission;
importjava.nio.file.attribute.PosixFilePermissions;
importjava.util.Set;
importde.greenrobot.daogenerator.DaoGenerator;
importde.greenrobot.daogenerator.Entity;
importde.greenrobot.daogenerator.Schema;
publicclassMyDaoGenerator{
privatestaticfinalStringGENERATED_SRC_DIR="./app/gen-src";
publicstaticvoidmain(String[]args)throwsException{
Schemaschema=newSchema(1,MyDaoGenerator.class.getPackage().getName());
Entityentity=schema.addEntity("User");
entity.addLongProperty("UserId").notNull();
entity.addStringProperty("Password").notNull();
entity.addStringProperty("Name").notNull();
// need to create the folder by ourself, or the generateAll() method will cause I/O error
createDirs(Paths.get(GENERATED_SRC_DIR));
newDaoGenerator().generateAll(schema,GENERATED_SRC_DIR);
}
privatestaticvoidcreateDirs(Pathpath)throwsIOException{
if(Files.notExists(path,LinkOption.NOFOLLOW_LINKS)) {
Setperms=PosixFilePermissions.fromString("rwxr-x---");
FileAttribute>attrs=PosixFilePermissions.asFileAttribute(perms);
Files.createDirectories(path, attrs);
}
}
}
view rawMyDaoGenerator.javahosted with ❤ byGitHub
Run Configuration
選擇Run --> Edit Configurations...替我們的DaoGenerator新增一個執行設定
點選視窗左上角的+並新增一個Application的設置
設定所需參數
Name:這個設定檔的名稱,可任意命名
Main Class:你的 MyDaoGenerator.java 的位置
Use classpath of module:選擇 daogenerator module
設定完成後,選擇剛剛編輯好的設定,並且執行:
若是執行過程中沒有出錯,我們應該可以在我們的主要 module - 也就是app module中,找到新建立的gen-src資料夾,並且發現 DaoGenerator 已經幫我們把這些自動產生的類別給建立好了!
新增 greendao library
現在若是您點擊利用 DaoGenerator 所產生的DaoMaster.java或是其他自動產生的檔案,你會發現 Android Studio 的編譯器沒有辦法解析某些檔案內所使用到類別,那是因為這些類別是包在greenDao這個 library 的,我們還沒有引用它,所以再度編輯app/build.gradle,並且加上
dependencies{compilefileTree(dir:'libs',include:['*.jar'])compile'com.android.support:appcompat-v7:21.0.2'//add greendao librarycompile'de.greenrobot:greendao:1.3.7'}
再次重新 Sync Gradle 的設置之後,我們就可以開始使用 GreenDao 帶給我們的便利囉!
http://cloudchen.com/using-greendao-with-android-studio/