安卓应用程序安装包的信息获取方法和装置制造方法

文档序号:6499426阅读:184来源:国知局
安卓应用程序安装包的信息获取方法和装置制造方法
【专利摘要】本发明提供了一种安卓应用程序安装包的信息获取方法和装置。所述方法包括:反编译安卓应用程序安装包得到相应的布局文件和字节码文件;通过设置屏幕控件从所述字节码文件得到相应的编码;根据所述编码在所述布局文件中查找得到对应的控件名称。所述装置包括:反编译模块,用于反编译安卓应用程序安装包得到相应的布局文件和字节码文件;编码获取模块,用于通过设置屏幕控件从所述字节码文件得到相应的编码;查找模块,用于根据所述编码在所述布局文件中查找得到对应的控件名称。采用本发明能在无源代码的情况下获取控件信息。
【专利说明】安卓应用程序安装包的信息获取方法和装置
【技术领域】
[0001]本发明涉及移动设备应用技术,特别是涉及一种安卓应用程序安装包的信息获取方法和装置。
【背景技术】
[0002]随着移动设备的发展,移动设备的性能越来越优越,在采用了安卓系统的移动设备中,各种安卓应用程序安装包被安装于其中,以满足用户需求。
[0003]在众多的安卓应用程序安装包中,对某一安卓应用程序安装包进行反编译的可能性是非常高的,通过对安卓应用程序安装包的反编译等处理来获取所需要的信息。然而,仅仅通过反编译安卓应用程序安装包所得到的布局文件是无法获知控件的信息的,难以实现无源代码情况下也能获取安卓应用程序安装包中控件的信息。

【发明内容】

[0004]基于此,提供一种能在无源代码的情况下获取控件信息的安卓应用程序安装包的息获取方法。
[0005]此外,还有必要提供一种能在无源代码的情况下获取控件信息的安卓应用程序安装包的信息获取装置。
[0006]一种安卓应用程序安装包的信息获取方法,包括如下步骤:
[0007]反编译安卓应用程序安装包得到相应的布局文件和字节码文件;
[0008]通过设置屏幕控件从所述字节码文件得到相应的编码;
[0009]根据所述编码在所述布局文件中查找得到对应的控件名称。
[0010]一种安卓应用程序安装包的信息获取装置,包括:
[0011]反编译模块,用于反编译安卓应用程序安装包得到相应的布局文件和字节码文件;
[0012]编码获取模块,用于通过设置屏幕控件从所述字节码文件得到相应的编码;
[0013]查找模块,用于根据所述编码在所述布局文件中查找得到对应的控件名称。
[0014]上述安卓应用程序安装包的信息获取方法和装置,对安卓应用程序安装包进行反编译将得到布局文件和字节码文件,通过设置屏幕控件从字节码文件中得到相应的编码,进而根据该编码查找得到控件名称,实现了在无源代码的情况下也能够获取相应的控件信息,大大地便得了安卓应用程序安装包的研发。
【专利附图】

【附图说明】
[0015]图1为一个实施例中安卓应用程序安装包的信息获取方法的流程图;
[0016]图2为另一个实施例中安卓应用程序安装包的信息获取方法的流程图;
[0017]图3为一个实施例中安卓应用程序安装包的信息获取装置的结构示意图;
[0018]图4为另一个实施例中安卓应用程序安装包的信息获取装置的结构示意图。【具体实施方式】
[0019]如图1所示,在一个实施例中,一种安卓应用程序安装包的信息获取方法,包括如下步骤:
[0020]步骤S110,反编译安卓应用程序安装包得到相应的布局文件和字节码文件。
[0021]本实施例中,安卓应用程序安装包用于为移动设备提供相应的安卓应用程序,以便于为用户在移动设备的使用提供各种功能,其中,安卓应用程序安装包为后缀为apk的文件,简称 apk (Android Package, Android 安装包)。
[0022]对安卓应用程序安装包进行反编译,将得到相应的布局文件和若干个字节码文件,其中,布局文件为XML (extensible Markup Language,可扩展标识语言)文件。
[0023]在一个实施例中,上述步骤SllO的具体过程为:通过命令行运行平台中运行的命令运行反编译工具,并通过反编译工具对安卓应用程序安装包进行反编译,得到安卓应用程序安装包对应的布局文件和字节码文件。
[0024]本实施例中,命令行运行平台用于运行命令,以实现相应的功能,其中,命令行运行平台可以是CMD (co_and)组件,相应的,所运行的命令也将为CMD命令。CMD组件也称命令提示符窗口,是windows系统所提供的组件,用于实现用户与windows系统之间的沟通和交流。
[0025]通过在命令行运行平台中运行相应命令,以定位反编译工具所在的文件夹,进而利用反编译命令使得反编译工具对应安卓应用程序安装包进行反编译,其中,反编译工具可以是ApkTool,对于CMD组件而目,反编译命令可以是“apktool dl23.apk”,在这一反编译命令中,apktool为反编译工具,d为反编译参数,123.apk为进行反编译的安卓应用程序安装包。
[0026]如图2所示,在一个实施例中,上述步骤SllO之后还包括如下步骤:
[0027]步骤S210,检查安卓应用程序安装包是否存放于反编译工具所在的文件夹,若是,则进入步骤S110,若否,则进入步骤S230。
[0028]本实施例中,反编译工具所在的文件夹为反编译工具对安卓应用程序安装包进行反编译时的工作文件夹。对反编译工具所在的文件夹进行检查,以判断即将进行反编译的安卓应用程序安装包是否存放于反编译工具所在的文件夹中,若是,则可直接进行反编译,若即将进行反编译的安卓应用程序安装包并未存入于反编译工具所在的文件夹中,则需要提取安卓应用程序安装包,并复制到反编译工具所在的文件夹中。
[0029]步骤S230,提取安卓应用程序安装包并复制到反编译工具所在的文件夹中。
[0030]步骤S130,通过设置屏幕控件从字节码文件得到相应的编码。
[0031]本实施例中,设置屏幕控件,即SetCountView,用于设置图形界面中布局所使用的资源,字节码文件中记录了十六进制编码所代表的控件标识,因此,可通过设置屏幕控件从字节码文件中提取得到相应的编码。
[0032]在一个实施例中,上述步骤S130的具体过程为:开启字节码文件,通过安卓应用程序安装包中活动组件的设置屏幕控件从开启的字节码文件中提取十六进制编码。
[0033]本实施例中,字节码文件是对安卓应用程序安装包中的java文件进行反编译后得到的,通常为smali文件。获取安卓应用程序安装包中任一活动组件,并通过该活动组件中的设置屏幕控件对字节码文件进行十六进制编码的提取。
[0034]步骤S150,根据编码在布局文件中查找得到对应的控件名称。
[0035]本实施例中,由于布局文件和字节码文件中的格式以及编码方式各不相同,因此,需要经由通过字节码文件所得到的编码在布局文件中进行查找,以得到与提取的编码相同的控件标识,进而得到控件标识所对应的控件名称。
[0036]在一个实施例中,上述步骤S150的具体过程为:根据十六进制编码在布局文件中进行查找,以得到布局文件中控件标识与十六进制编码相一致的条目,从查找得到的条目中提取出控件名称。
[0037]本实施例中,布局文件中包含了若干个条目,其中,每一条目都将记录了控件标识以及该控件标识所对应的控件名称,因此,根据十六进制编码在布局文件中进行查找,可得到包含了十六进制编码的条目,进而得到这一十六进制编码所对应的控件名称。
[0038]上述安卓应用程序安装包的信息获取方法能够高效地在较为复杂的文件中分析得到字节码文件所包含的控件信息,即控件标识和控件名称,大大的方便了安卓应用程序的反编译过程。
[0039]如图3所示,在一个实施例中,一种安卓应用程序安装包的信息获取装置,包括反编译模块110、编码获取模块130和查找模块150。
[0040]反编译模块110,用于反编译安卓应用程序安装包得到相应的布局文件和字节码文件。
[0041]本实施例中,安卓应用程序安装包用于为移动设备提供相应的安卓应用程序,以便于为用户在移动设备的使用提供各种功能,其中,安卓应用程序安装包为后缀为apk的文件,简称apk。
[0042]反编译模块110对安卓应用程序安装包进行反编译,将得到相应的布局文件和若干个字节码文件,其中,布局文件为XML文件。
[0043]在一个实施例中,上述反编译模块110还用于通过命令行运行平台中运行的命令运行反编译工具,并通过反编译工具对安卓应用程序安装包进行反编译,得到安卓应用程序安装包对应的布局文件和字节码文件。
[0044]本实施例中,命令行运行平台用于运行命令,以实现相应的功能,其中,命令行运行平台可以是CMD组件,相应的,所运行的命令也将为CMD命令。CMD组件也称命令提示符窗口,是windows系统所提供的组件,用于实现用户与windows系统之间的沟通和交流。
[0045]反编译模块110通过在命令行运行平台中运行相应命令,以定位反编译工具所在的文件夹,进而利用反编译命令使得反编译工具对应安卓应用程序安装包进行反编译,其中,反编译工具可以是ApkTool,对于CMD组件而目,反编译命令可以是“apktool dl23.apk”,在这一反编译命令中,apktool为反编译工具,d为反编译参数,123.apk为进行反编译的安卓应用程序安装包。
[0046]如图4所示,在一个实施例中,上述安卓应用程序安装包的信息获取装置还包括检查模块210和复制模块230。
[0047]检查模块210,用于检查安卓应用程序安装包是否存放于反编译工具所在的文件夹,若是,则通知反编译模块110,若否,则通知复制模块230。
[0048]本实施例中,反编译工具所在的文件夹为反编译工具对安卓应用程序安装包进行反编译时的工作文件夹。检查模块210对反编译工具所在的文件夹进行检查,以判断即将进行反编译的安卓应用程序安装包是否存放于反编译工具所在的文件夹中,若是,则可通知反编译模块110直接进行反编译,若即将进行反编译的安卓应用程序安装包并未存入于反编译工具所在的文件夹中,则需要通知复制模块230提取安卓应用程序安装包,并复制到反编译工具所在的文件夹中。
[0049]复制模块230,用于提取安卓应用程序安装包并复制到反编译工具所在的文件夹中。
[0050]编码获取模块130,用于通过设置屏幕控件从字节码文件得到相应的编码。
[0051]本实施例中,设置屏幕控件,即SetCountView,用于设置图形界面中布局所使用的资源,字节码文件中记录了十六进制编码所代表的控件标识,因此,编码获取模块130可通过设置屏幕控件从字节码文件中提取得到相应的编码。
[0052]在一个实施例中,上述编码获取模块130还用于开启字节码文件,通过安卓应用程序安装包中活动组件的设置屏幕控件从开启的字节码文件中提取十六进制编码。
[0053]本实施例中,字节码文件是对安卓应用程序安装包中的java文件进行反编译后得到的,通常为smali文件。编码获取模块130获取安卓应用程序安装包中任一活动组件,并通过该活动组件中的设置屏幕控件对字节码文件进行十六进制编码的提取。
[0054]查找模块150,用于根据编码在布局文件中查找得到对应的控件名称。
[0055]本实施例中,由于布局文件和字节码文件中的格式以及编码方式各不相同,因此,查找模块150需要经由通过字节码文件所得到的编码在布局文件中进行查找,以得到与提取的编码相同的控件标识,进而得到控件标识所对应的控件名称。
[0056]在一个实施例中,上述查找模块150还用于根据十六进制编码在布局文件中进行查找,以得到布局文件中控件标识与十六进制编码相一致的条目,从查找得到的条目中提取出控件名称。
[0057]本实施例中,布局文件中包含了若干个条目,其中,每一条目都将记录了控件标识以及该控件标识所对应的控件名称,因此,查找模块150根据十六进制编码在布局文件中进行查找,可得到包含了十六进制编码的条目,进而得到这一十六进制编码所对应的控件名称。
[0058]上述安卓应用程序安装包的信息获取装置能够高效地在较为复杂的文件中分析得到字节码文件所包含的控件信息,即控件标识和控件名称,大大的方便了安卓应用程序的反编译过程。
[0059]上述安卓应用程序安装包的信息获取方法和装置,对安卓应用程序安装包进行反编译将得到布局文件和字节码文件,通过设置屏幕控件从字节码文件中得到相应的编码,进而根据该编码查找得到控件名称,实现了在无源代码的情况下也能够获取相应的控件信息,大大地便得了安卓应用程序安装包的研发。
[0060]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。[0061]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种安卓应用程序安装包的信息获取方法,包括如下步骤: 反编译安卓应用程序安装包得到相应的布局文件和字节码文件; 通过设置屏幕控件从所述字节码文件得到相应的编码; 根据所述编码在所述布局文件中查找得到对应的控件名称。
2.根据权利要求1所述的安卓应用程序安装包的信息获取方法,其特征在于,所述反编译安卓应用程序安装包得到相应的布局文件和字节码文件的步骤包括: 通过命令行运行平台中运行的命令运行反编译工具,并通过所述反编译工具对安卓应用程序安装包进行反编译,得到所述安卓应用程序安装包对应的布局文件和字节码文件。
3.根据权利要求2所述的安卓应用程序安装包的信息获取方法,其特征在于,所述反编译安卓应用程序安装包得到相应的布局文件和字节码文件的步骤之后还包括: 检查所述安卓应用程序安装包是否存放于所述反编译工具所在的文件夹,若是,则进入所述反编译安卓应用程序安装包得到相应的布局文件和字节码文件的步骤,若否,则 提取安卓应用程序安装包并复制到所述反编译工具所在的文件夹中。
4.根据权利要求1所述的安卓应用程序安装包的信息获取方法,其特征在于,所述通过所述设置屏幕控件从所述字节码文件得到相应的编码的步骤包括: 开启所述字节码文件,通过所述安卓应用程序安装包中活动组件的设置屏幕控件从所述开启的字节码文件中提取十六进制编码。
5.根据权利要求4所述的安卓应用程序安装包的信息获取方法,其特征在于,所述根据所述编码在所述布局文件中查找得到对应的控件名称的步骤包括: 根据所述十六进制编码在所述布局文件中进行查找,以得到布局文件中控件标识与十六进制编码相一致的条目,从查找得到的条目中提取出控件名称。
6.一种安卓应用程序安装包的信息获取装置,其特征在于,包括: 反编译模块,用于反编译安卓应用程序安装包得到相应的布局文件和字节码文件; 编码获取模块,用于通过设置屏幕控件从所述字节码文件得到相应的编码; 查找模块,用于根据所述编码在所述布局文件中查找得到对应的控件名称。
7.根据权利要求6所述的安卓应用程序安装包的信息获取装置,其特征在于,所述反编译模块还用于通过命令行运行平台中运行的命令运行反编译工具,并通过所述反编译工具对安卓应用程序安装包进行反编译,得到安卓应用程序安装包对应的布局文件和字节码文件。
8.根据权利要求7所述的安卓应用程序安装包的信息获取装置,其特征在于,所述装置还包括: 检查模块,用于检查所述安卓应用程序安装包是否存放于所述反编译工具所在的文件夹,若是,则通知反编译模块,若否,则通知复制模块; 所述复制模块用于提取安卓应用程序安装包并复制到所述反编译工具所在的文件夹中。
9.根据权利要求8所述的安卓应用程序安装包的信息获取装置,其特征在于,所述编码获取模块还用于开启所述字节码文件,通过所述安卓应用程序安装包中活动组件的设置屏幕控件从所述开启的字节码文件中提取十六进制编码。
10.根据权利要求9所述的安卓应用程序安装包的信息获取装置,其特征在于,所述查找模块还用于根据所述十六进制编码在所述布局文件中进行查找,以得到布局文件中控件标识与十六进制编码相一致的条目, 从查找得到的条目中提取出控件名称。
【文档编号】G06F9/44GK103970514SQ201310032157
【公开日】2014年8月6日 申请日期:2013年1月28日 优先权日:2013年1月28日
【发明者】徐铮 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1