データの永続化1 Properties

  • Key-Value形式で値を格納
  • Stringだけでなく数値や配列も使用可能(書き込まれれば全て文字列ですがとりだす時の型を意識できます)

Android

  • 「データ削除」で消える
    • 「データ削除」では/data/data/{パッケージ名}/lib以外が消えます
  • アプリの停止でも問題なし(当然か)
  • マルチバイトOK utf8(確認済み)
  • SDカード移動でも移動しない
  • 端末を落とさない限りはとりあえず安全(未知の攻撃からは不明、root化された端末は駄目)
    • 紛失時に備えるためにはデータ自体の暗号化を行う必要があるが、鍵問題が起きる
  • まとめてフラッシュする形ではなく都度xmlを書き換えているように見えるので、パフォーマンスに注意
    • 数が多い場合は設定情報をjsonにして1つの文字列とするなど工夫をしたほうがいいかもしれない

iOS

値の書き込み

bool,int,string,listの形式で書き込むことができる。

                Ti.App.Properties.setBool('bool_key',true);
		Ti.App.Properties.setInt('int_key',-123456789);
		Ti.App.Properties.setString('str_key', "abcdefg&#&=");
		Ti.App.Properties.setString('double_str_key',"こんにちわ");
		var arr = ["value1","value2"];
		Ti.App.Properties.setList('list_key',arr);

値の取り出し

Ti.App.Properties.getString('double_str_key')

保存場所(Android)

/data/data/{パッケージ名}/shared_prefs/titanium.xml

titanium.xml

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<map> 
  <string name="str_key">abcdefg&#&=</string> 
  <boolean name="bool_key" value="true"/> 
  <string name="ti.deploytype">development</string> 
  <string name="list_key">["value1","value2"]</string>
   <int name="int_key" value="-123456789"/> 
   <string name="double_str_key">こんにちわ</string> 
   <string name="ti.ui.defaultunit">system</string>
</map>
titanium/data/data_permanent.txt · 最終更新: 2012/08/02 07:03 by enibloadmin
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0