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

时间:2013-12-04 12:54:12

标签: android encryption android-fonts

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

这样的事情
Typeface.createFromAsset(getAssets(),"fonts/myAwesomeFont.ttf");

在iOS上使用此approach,它可以动态解密字体并使其在应用程序中可用。 Android上是否有类似的方法?

我的预感是使用一个单独的类来处理原始资源文件的解密,并在我在视图上的代码中设置时按需返回字体。 我错过了更好的方法吗? *这甚至可能吗?*

2 个答案:

答案 0 :(得分:1)

  

Android上是否有类似的方法?

不是。

  

我的预感是使用一个处理原始资源文件解密的单例类,并在视图中的代码中设置它时按需返回字体

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

欢迎您解密字体文件并将其存储在本地未加密,然后使用它。这对您的许可条款是否足够,对您的律师来说是一个问题。

答案 1 :(得分:0)

你可以做一件事......

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

获取加密文件
getAssets().open(fileName);

并首次解密流并将解密文件(原始字体文件)存储在Appication专用路径中。并在每次需要时使用此文件创建字体...使用

Typeface.createFromFile(File);

所以你的APK将包含加密文件......