android - 保护 Android Assets 文件夹中的 html/css/js

标签 android

我在开发 Android 应用程序。一些 Activity ,我使用 webview 并从 Android asesst 文件夹加载 html。在 apk 上,如果将包重命名为 name.apk.zip,那么任何人都可以轻松访问我的 asesst 文件夹内容。 现在我想保护我的 Assets 内容,主要是 html 文件。

请帮忙提供一些关于html加密或Android studio插件保护的建议。

最佳答案

最有效的方法是将文件包含在您的服务器中,并通过授权获取文件。

在本地进行。我建议在 gradle 中创建自定义任务,用于将您的 html/css 文件映射到一些 incode 存储中,使用 Base64(仅针对 ex. 进行编码)。它看起来像:

task mapAssets(dependsOn: build) {
    SOURCE_FILE = 'Path to Source File'
    doFirst {
        println "I'm Gradle"
    }
    String source = new File(SOURCE_FILE).text

    ENCODED_FILE = 'Path to Encoded File'
    new File(ENCODED_FILE).withWriter { out ->
         out.println source.bytes.encodeBase64().toString()
    }
}

稍后在您的 Java 代码中,只需找到 ENCODED_FILE 并再次调用 HTML 中的读取文件和映射,从 Base64 (或任何其他编码)。

关于android - 保护 Android Assets 文件夹中的 html/css/js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50773034/

相关文章:

android - Robolectric:如何测试 SherlockActivity

android - 具有多个没有标题的 PreferenceScreen 的 PreferenceActivity

带有res文件的android库依赖库

android - 更改 ArrayAdapter ListView Android 中的特定行

Android Youtube API JSON-C 使用 GSON 解析

android - android 中谷歌地图中的自定义标记

AndroidX Preference 库 DropDownPreferences 不适用于 API < 24

android - 如何以编程方式在 dp 中设置 EditText 顶部边距?

java - 如何在 ListView 中的每个项目之间添加间距

android - 在一个对象中同时使用 jackson 和 ormlite 注释时出现异常