編輯:關於Android編程
Android提供了XmlSerializer來實現XML文件的序列化。相比傳統方式,更高效安全。
傳統方式:
public void backSms(View view){ //假設我已經獲取到了所有的短信 StringBuilder sb = new StringBuilder(); sb.append(""); sb.append(""); for(SmsInfo info:smsInfos){ sb.append(" "); try{ File file = new File(Environment.getExternalStorageDirectory(),"backup.xml"); FileOutputStream fos = new FileOutputStream(file); fos.write(sb.toString().getBytes()); Toast.makeText(this, "備份成功", Toast.LENGTH_LONG).show(); }catch(Exception e){ e.printStackTrace(); Toast.makeText(this, "備份失敗", Toast.LENGTH_LONG).show(); } }"); sb.append(""); sb.append(info.getAddress()); sb.append(""); sb.append(" "); } sb.append(""); sb.append(info.getType()); sb.append(" "); sb.append(""); sb.append(info.getBody()); sb.append(""); sb.append(""); sb.append(info.getBody()); sb.append(" "); sb.append("
public void backSms2(View view){ try{ XmlSerializer serializer = Xml.newSerializer(); File file = new File(Environment.getExternalStorageDirectory(),"backup2.xml"); FileOutputStream os = new FileOutputStream(file); //初始化序列號器 指定XML數據寫入到哪個文件 並且指定文件的編碼方式 serializer.setOutput(os,"utf-8"); serializer.startDocument("uft-8", true); serializer.startTag(null, "smss"); for(SmsInfo info:smsInfos){ serializer.startTag(null, "sms"); serializer.attribute(null, "id", info.getId()+""); serializer.startTag(null, "body"); serializer.text(info.getBody()); serializer.endTag(null, "body"); serializer.startTag(null, "address"); serializer.text(info.getAddress()); serializer.endTag(null, "address"); serializer.endTag(null, "sms"); } serializer.endTag(null, "smss"); serializer.endDocument(); }catch(Exception e){ e.printStackTrace(); Toast.makeText(this, "備份失敗", 0); } }
本例實現一個簡單的場景: 1、使用C編寫一個方法,接收1個參數,方法中調用Java的方法。 2、Java類中編寫一個方法,接收一個參數。 3、模擬調用場景:點擊按鈕 -&
android中使用jni對字符串加解密實現分析 最近項目有個需求,就是要對用戶的敏感信息進行加密處理,比如用戶的賬戶密碼,手機號等私密信息。在java中,就對字符串
菜單是用戶界面中最常見的元素之一,使用非常頻繁,在Android中,菜單被分為如下三種,選項菜單(OptionsMenu)、上下文菜單(ContextMenu)和子菜單(
Android DrawerLayout 抽屜DrawerLayout 在supportV4 Lib中,類似開源slidemenu一樣,DrawerLayout父類為Vi