安卓开发知识记录

1.dom转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);

        // 创建TransformerFactory对象
        TransformerFactory tff = TransformerFactory.newInstance();

        // 创建Transformer对象
        Transformer tf = tff.newTransformer();

        // 设置输出数据时换行
//        tf.setOutputProperty(OutputKeys.INDENT, "yes");
//
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        // 使用Transformer的transform()方法将DOM树转换成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库

由于公司项目用到的几个.so的库,自己在导入的时候遇到了几个坑,参考了这篇文章 System.loadLibrary加载so的路径问题
步骤一:在项目路径下的libs下新建armeabi文件夹,将用到的.so文件放置进去

新建armeabi文件夹

步骤二:在项目的build.gradle添加

sourceSets.main{
        jniLibs.srcDirs = ['libs'];
    }

步骤三:添加权限设置,在AndroidManifest.xml中添加

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

注意点:检查调用方法的路径和so包中的路径是否一致,不然会出现 Native method not found 的问题

3.新建assets目录

新建的assets目录需与java在同级。


新建assets
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容