是否可以从Android中的资源加密id

时间:2016-05-31 08:01:31

标签: android android-studio encryption

让我举一个例子来解释。

这是一个布局文件

abc.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    android:id="0x7f10014b"
    android:layout_height="-2"
    android:layout_width="-1"
    android:orientation="0" 
    android:padding="5dp" 
    android:weightSum="1.0">

    <TextView 
        android:id="0x7f10014c"
        android:layout_height="-2"
        android:layout_marginLeft="10dp"
        android:layout_weight="0.99" 
        android:layout_width="-2"
        android:padding="10dp"
        android:text="TextView" />

    <ImageView 
        android:id="0x7f10014d"
        android:layout_gravity="10"
        android:layout_height="40dp"
        android:layout_marginRight="10dp"
        android:layout_weight="0.01"
        android:layout_width="40dp"
        android:padding="10dp"
        android:src="0x7f0200b2" />

</LinearLayout>

正如您在布局文件中看到的那样,id由算法加密。它将存储在values文件夹中的id.xml文件夹中。

id.xml

<resources>
    <item type="id" name="action_location">false</item>
    <item type="id" name="action_tile">false</item>
    <item type="id" name="action_filter">false</item>
    <item type="id" name="action_share">false</item>
</resources>

如果可以编写java代码,那么它的逻辑如下。

要访问此处LinearLayout,请假设LinearLayout使用值00ff7des加密。

所以Global声明是:

LinearLayout 00ff7des;

在OnCreate方法中

00ff7des = (LinearLayout)findViewById(0x7f10014b);

所以我是Android新手。有没有办法做到这一点。根据我的想法,这是可能的,但如何加密,我不知道。任何人都可以告诉我该怎么办。或者我们可以应用于android的加密技术。

任何帮助都要得到赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用像DexGuard这样的软件来实现这一目标。 https://www.guardsquare.com/dexguard

您可以免费使用ProGuard,它会对代码进行模糊处理和最小化,因此对您的应用进行逆向工程会更加困难。