1.dom轉(zhuǎn)xml string
參考地址
方法:
public String toXml(HashMap params) throws ParserConfigurationException, TransformerConfigurationException {
if (params == null){
return null;
}
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
document.setXmlVersion("1.0");
Element requestEle = document.createElement("request");
Iterator iter = params.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = params.get(key);
Element childEle = document.createElement((String) key);
childEle.setTextContent((String) val);
requestEle.appendChild(childEle);
}
document.appendChild(requestEle);
// 創(chuàng)建TransformerFactory對(duì)象
TransformerFactory tff = TransformerFactory.newInstance();
// 創(chuàng)建Transformer對(duì)象
Transformer tf = tff.newTransformer();
// 設(shè)置輸出數(shù)據(jù)時(shí)換行
// tf.setOutputProperty(OutputKeys.INDENT, "yes");
//
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// 使用Transformer的transform()方法將DOM樹轉(zhuǎn)換成XML
String xmlString;
try {
tf.transform(new DOMSource(document), new StreamResult(bos));
xmlString = bos.toString();
} catch (TransformerException e) {
xmlString = null;
e.printStackTrace();
}
return xmlString;
}
}
2.加載.so庫(kù)
由于公司項(xiàng)目用到的幾個(gè).so的庫(kù),自己在導(dǎo)入的時(shí)候遇到了幾個(gè)坑,參考了這篇文章 System.loadLibrary加載so的路徑問(wèn)題
步驟一:在項(xiàng)目路徑下的libs下新建armeabi文件夾,將用到的.so文件放置進(jìn)去
新建armeabi文件夾
步驟二:在項(xiàng)目的build.gradle添加
sourceSets.main{
jniLibs.srcDirs = ['libs'];
}
步驟三:添加權(quán)限設(shè)置,在AndroidManifest.xml中添加
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
注意點(diǎn):檢查調(diào)用方法的路徑和so包中的路徑是否一致,不然會(huì)出現(xiàn) Native method not found 的問(wèn)題
3.新建assets目錄
新建的assets目錄需與java在同級(jí)。
新建assets