Crazy Android Note Chapter-8

12807 ワード

第八章AndroidデータをIOに保存する
SharedPreferenceの概念と役割
SharedPreferenceを使用してプログラムのパラメータ、オプションを保存
他のアプリケーションを読み書きするSharedPreference
AndroidのファイルIO
SDカードのファイルを読み書きする
SQLiteデータベースについて
AndroidのAPIを使用してSQLiteデータベースを操作する
SQLiteデータベースをsqlite 3ツールで管理する
SQLiteOpenHelperクラスの機能と使い方
Androidジェスチャーサポート
ジェスチャーモニタリング
ジェスチャーライブラリへのジェスチャーの追加
ユーザジェスチャーの認識
1、SharedPreferenceの使用
SharedPreference                    ,                key-value 。
SharedPreference     ,             Preference  :
    boolean contains(String key):  SharedPreference      key   
    abstract Map getAll():  SharedPreference      key-value 。
    boolean getXxx(String key,XXX defValue):
SharedPreference            ,   SharedPreference     ,  edit()           Editor  。Editor    SharedPreference       :
    SharedPreference.Editor clear():  SharedPreference      。
    SharedPreference.Editor putXxx(String key,XXX value): SharedPreference    key     ,value   boolean float int long String       
    SharedPreference.Editor remove(String key):    key     。

    boolean commit(): Editor     ,         


     ,SharedPreference SharedPreference.Editor       Map,  SharedPreference    key    ,SharedPreference.Editor       

SharedPreference       ,          ,    Context   getSharedPreference(String name,int mode)        ,          :
    Context.MODE_PRIVATE:   SharedPreference          
    Context.MODE_WORLD_READABLE:   SharedPreference         ,    
    Context.MODE_WORLD_WRITEABLE_READABLE:   SharedPreference          。
Note: Android4.2  ,Android      Context.MODE_WORLD_READABLE、Context.MODE_WORLD_WRITEABLE_READABLE     ,        。                        ,     ContentProvide。

SharedPreferenceデータは常に/data/data//shared_に保存されます.prefsディレクトリの下に、XML形式で保存します.
2、Fileストレージ
アプリケーションデータフォルダのファイルの読み書き
Context                        IO :
    FileInputStream openFileInput(String name):                        。
    FileOutputStream openFileOutput(String name,int mode):              name        。。
    mode  :
        MODE_PROVATE:            
        MODE_APPEND:          ,               
        MODE_WORLD_READABLE:               
        MODE_WORLD_WRITEABLE:             
        4.2             

    ,Context                     :
    getDir(String name,int mode):                 name      
    File getFilesDir():                 
    String[] fileList():                  
    deleteFile(String name):                  

アプリケーションのデータファイルはデフォルトで/data/data//filesディレクトリに保存されます
SDカードのファイルを読み書きする
        SD    :
    
    
    
    
  :
      Environment getExternalStorageState()          SD ,
      Environment getExternalStorageDirectory()         ,   SD    
      FileInputStream、FileOutputStream、FileReader FileWriter  SD     。

3、SQLiteデータベース
SQLite    Android              ,       SQL 92  ,        SQL           ,  SQLite  Oracle、MySQL         、       ,SQLite         。

SQLiteDatabase
    Android   SQLiteDatabase       (           ),               SQLiteDatabase  ,        SQLiteDatabase     、      。
    SQLiteDatabase                    :
        static SQLiteDatabase   openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags):  path      SQLite   
        static SQLiteDatabase   openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory):     (     )path      SQLite   
        static SQLiteDatabase   openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)     (     )file      SQLite   

       SQLiteDatabase    ,     SQLiteDatabase         :
            、    

データベースとテーブルの作成
SQLiteDatabase.openOrCreateDatabase("/mnt/db/temp.db3",null);
               SQLite   ,  /mnt/db/    temp.db3  (         )  ,           ;     ,               temp.db3  (       )。
        SQLiteDatabase.CursorFactory  ,          Cursor   ,   null,         。
         SQLiteDatabase  ,            

SQL文を使用したSQLiteデータベースの操作
SQLiteDatabase execSQL()        SQL  ,       SQL  。           ,        DDL   DML  ;          ,    SQLiteDatabase rawQuary(String sql,String[] selectionArgs)  。
db.execSQL("insert into news_inf values(null,?,?)",new String[]{title,content});

SQLiteDatabaseを使用してデータベース操作を行うには、次の手順に従います.
  SQLiteDatabase  ,          。
  SQLiteDatabase     SQL  
  SQL       
  SQLiteDatabase,    

sqlite 3ツールの使用
     Android SDK platform-tools        sqlite3.exe  ,       Sqlite       ,   MySQL        。
    sqlite3    :
        .database:         
        .tables:            
        .help:  sqlite3     

取引
beginTransaction():    
endTransaction():    
inTransaction():                ;        true       false

   endTransaction()         ——        ,       ?    SQLiteDatabase     setTransationSuccessful()         ,                           ;          。

SQLiteOpenHelper
             SQLiteDatabase        ,      SQLiteOpenHelper    ,       getReadableDatabase()、getWritableDatabase()       。
    SQLiteOpenHelper Android            ,                。       SQLiteOpenHelper   ,     onCreate(SQLiteDatabase db) onUpdgrade(SQLiteDatabase db,int oldVersion,int newVersion)  。
    SQLiteOpenHelper    :
        SQLiteDatabase  getReadableDatabase():              SQLiteDatabase  
        SQLiteDatabase  getWritableDatabase():             SQLiteDatabase  
        abstract void   onCreate(SQLiteDatabase db):               ,           ,                  
        abstract void   onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion):              ;     
        synchronized void   close():       SQLiteDatabase  

getReadableDatabase() getWritableDatabase()   :
    getWritableDatabase()            ,            ,           ,             ;getReadableDatabase()             ,           ,      ,                     。

4、ジェスチャー(Gesture)
ジェスチャーモニタリング
    Android          GestureDetector ,GestureDetector           ,  GestureDetector       GestureDetector.OnGestureListener  ,GestureDetector.OnGestureListener       ,             
    GestureDetector.OnGestureListener:
        boolean onDown(MotionEvent e):
        boolean onFling(MotionEvent e1,Motion Event e2,float velocityX,float velocityY):         "  "      ,  velocityX、velocityY  “  ”     、      。
        abstract void onLongPress(MotionEvent e):
        boolean onScroll(MotionEvent e1,MotionEvent e2,float distanceX,float distanceY):         "  "      
        void onShowPress(MotionEvent e):           ,               
        boolean onSingleTapUp(MotionEvent e):                     

Androidのジェスチャーモニタリングを使用するには、2つのステップしか必要ありません.
        GestureDetector  。           GestureDetector.OnGestureListener     
          Activity(        ) TouchEvent       ,       Activity(     )  TouchEvent    GestureDetector  
public class GestureActivity extends AppCompatActivity{

    private GestureDetector gestureDetector;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gesture);

        gestureDetector = new GestureDetector(this,new GestureDetector.OnGestureListener() {
            @Override
            public boolean onDown(MotionEvent e) {
                return false;
            }

            @Override
            public void onShowPress(MotionEvent e) {

            }

            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return false;
            }

            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                return false;
            }

            @Override
            public void onLongPress(MotionEvent e) {

            }

            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                return false;
            }
        });
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {

        return gestureDetector.onTouchEvent(event);
    }
}

ジェスチャーを追加
Android          ,            (                     )        ,      ——     ,             ,        :
    Android  GestureLibrary      ,    GestureLibraries         
    GestureLibraries   4               :
        static GestureLibrary fromFile(String path): path           
        static GestureLibrary fromFile(File path): path           
        static GestureLibrary fromPrivateFile(Context context,String name):              name        
        static GestureLibrary fromRawResource(Context context,int resourceId): resourceId            

           GestureLibrary    ,        、  、       

    Android     GestureLibrary、GestureLibraries       ,               :GestureOverlayView,       "    ",               ,    
        GestureOverlayView        ,Android     OnGestureListener、onGesturePerformedListener、onGesturingListener       ,                     、  、  、     ,               ——    ,onGesturePerformedListener        ,               
.gesture.GestureOverlayView 
        android:id="@+id/gesture"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gestureStrokeType="multiple"
        />

android:gestureStrokeType=""               ,single           ,multiple        。

認識ジェスチャー
GestureLibrary   recognize(Gesture ges)       ,             ges     ——          ,     。
recognize(Gesture ges)       ArrayList,  Prediction          ,Prediction   name           ,score           。

自動朗読(TTS)
Androidは自動朗読機能を提供し、自動朗読サポートは指定されたテキストの内容を朗読し、音を出すことができる.それだけでなく、Androidの自動朗読サポートでは、テキスト対応のオーディオをオーディオファイルに録画することができ、後で再生するのに便利です.この自動朗読サポートの英語名はTextToSpeech、略称TTSである.TTSのサポートにより、アプリケーション内でオーディオ出力を動的に増加させ、ユーザー体験を向上させることができます.Androidの自動朗読サポートは主にTextToSpeechによって行われます.
TextToSpeech(Context context,TextToSpeech.OnInitListener listener)
  Android TTS      。