Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何保护字体并动态加密它们?_Android_Encryption_Android Fonts - Fatal编程技术网

Android 如何保护字体并动态加密它们?

Android 如何保护字体并动态加密它们?,android,encryption,android-fonts,Android,Encryption,Android Fonts,如果我想在我的应用程序中嵌入自定义字体,我必须至少以某种方式保护它们,因为许可证要求这样做。所以我不能做类似的事情 Typeface.createFromAsset(getAssets(),"fonts/myAwesomeFont.ttf"); 在iOS上,它可以动态解密字体并使其在应用程序中可用。在Android上有没有类似的方法 我的直觉是使用一个singleton类来处理原始资源文件的解密,并在视图的代码中设置字体时按需返回字体。有没有我错过的更好的方法*这可能吗* 在Android上有

如果我想在我的应用程序中嵌入自定义字体,我必须至少以某种方式保护它们,因为许可证要求这样做。所以我不能做类似的事情

Typeface.createFromAsset(getAssets(),"fonts/myAwesomeFont.ttf");
在iOS上,它可以动态解密字体并使其在应用程序中可用。在Android上有没有类似的方法

我的直觉是使用一个singleton类来处理原始资源文件的解密,并在视图的代码中设置字体时按需返回字体。有没有我错过的更好的方法*这可能吗*

在Android上有没有类似的方法

不是真的

我的直觉是使用一个singleton类来处理原始资源文件的解密,并在视图的代码中设置字体时按需返回字体

这是不可能的,因为您无法从某个字节数组或流创建
字体


欢迎您解密字体文件并将其未加密存储在本地,然后使用该文件。这是否足以满足您的许可条款是您律师的问题。

您可以做一件事

使用文件I/O流加密原始字体文件,并将加密文件保存在资源中。安装应用程序后,
然后使用

getAssets().open(fileName);
并对流进行解密,并首次将解密后的文件(原始字体文件)存储在应用程序专用路径中。并使用此文件创建字体,无论何时何地你需要。。。使用

Typeface.createFromFile(File);

因此,您的APK将包含加密文件…

因此,访问字体的唯一方法是将其明确嵌入APK中?@Erikmitk:不。欢迎您解密字体文件并将其存储在本地未加密,然后使用该文件。它将在APK中加密,但在内部存储中解密。普通用户无法访问内部存储,尽管有根设备的用户可以访问。啊,好的。现在我明白你的意思了。我必须确定一下,但我相信这样就行了。谢谢