一种获取安卓应用程序的入口及图标的方法

文档序号:6380218阅读:235来源:国知局
专利名称:一种获取安卓应用程序的入口及图标的方法
技术领域
本发明涉及安卓应用程序领域,尤其是一种获取安卓应用程序的入口及图标的方法。
背景技术
安卓系统(Android)是基于Linux开放性内核的操作系统。随着越来越多的人使用安卓系统手机,安卓应用程序也越来越多,安卓应用程序的图标给用户带来了界面的炫酷体验,丰富了安卓的Π系统。由于安卓应用程序可能有多个入口,每个入口对应一个图标。因此,市面上原有的解压安卓应用程序再到用户自己到相应的目录查找图标的方法已经无法满足用户的需求。原因是一般用户根本不知道安卓应用程序图标具体的位置也不知道程序的入口有几个。这样获取Android安卓应用程序的入口及图标则显得越来越困难, 开发者也不愿开放自己的源码与素材。一般用户也很难在网上找到相应的Android安卓应用程序的入口与图标,怎样才能更加高效更加快速的获取Android安卓应用程序的入口与图标显的尤为重要。用户获得这些入口程序名称和入口图标之后,可以根据自己的习惯,修改相应的入口图标和入口程序名称。发明内容
本发明的目的,就是克服现有技术的不足,提供一种可以获取安卓应用程序名称和入口图标名称的方法,本方法可以获取安卓应用程序所有入口程序名称和入口图标,免除了用户手动查找多个入口图标,进而修改所需入口程序名称和入口图标的麻烦。
为了达到上述目的,采用如下技术方案
一种获取安卓应用程序的入口及图标的方法,用于查找安卓应用程序的入口及图标,包括以下步骤
步骤一反编译所述安卓应用程序,获取安卓应用程序的配置文件;
步骤二 解析所述配置文件,查找安卓应用程序的启动入口,获取该启动入口的入口信息;
步骤三根据所述入口信息获取安卓应用程序的入口程序名称和入口图标。
进一步地,步骤一具体包括通过JAVA虚拟主机合并所述反编译安卓应用程序的线程和所述读取错误输出流的线程,获取安卓应用程序的配置文件,所述配置文件包括工程配置文件、基本信息配置文件和资源配置文件。
进一步地,步骤二具体包括通过SAX遍历工程配置文件,判断工程配置文件中各个界面控制器组件的属性值是否与预设的 属性值相同,若是,该界面控制器组件为安卓应用程序的启动入口,获取该界面控制组件的入口程序名称值和入口图标名称值。
进一步地,所述步骤三具体是所述入口图标名称值主要由目标地址和目标图标值组成,所述入口程序名称值主要由目标地址和目标程序值组成,根据入口程序名称值从基本配置文件中查找入口程序名称,根据入口图标名称值从资源配置文件中查找入口图标。
进一步地,所述步骤三具体是根据入口程序名称值的目标地址,从目标地址指向的基本配置文件中查找程序值与目标程序值相同的入口程序名称;根据入口程序图标值的目标地址,从目标地址指向的资源配置文件中查找图标值与目标图标值相同的入口图标。
进一步地,根据预设的路径,存储所述入口图标至该路径。
与现有技术相比,本发明的有益效果在于
I.本发明解决了反编译安卓应用程序后,用户无法获知入口图标的具体位置的问题,也解决了用户无法获知该安卓应用程序有多少个入口图标的问题。
2.本发明可以通过合并反编译安卓应用程序的线程和读取错误输出流的线程,可以有效快速地获得反编译后的应用图标具体位置。
3.本发明可以获取到安卓应用程序的所有入口图标,用户可以根据反编译的结果找到入口图标,修改入口图标。
4.本发明可以获取安卓应用程序的入口程序的名称,让用户可以获得每个入口程序的名称,还可以修改入口程序的名称。


图I是本发明第一实施例所述的获取安卓应用程序的入口及图标的方法的步骤流程图2是本发明第一实施例步骤二的具体实现方法的步骤流程图3是本发明第二实施例所述的获取安卓应用程序的入口及图标的方法的步骤流程图。
具体实施方式
下面将结合附图以及具体实施方法来详细说明本发明,在本发明的示意性实施及说明用来解释本发明,但并不作为对本发明的限定。
实施例一
请参阅图1,其为本发明的一种获取安卓应用程序的入口及图标的方法的步骤流程图,用于查找安卓应用程序的入口及入口图标,包括以下步骤
SlO :反编译所述安卓应用程序,获取安卓应用程序的配置文件。
具体地,提供一安卓应用程序,通过JAVA虚拟主机合并所述反编译安卓应用程序的线程和所述读取错误输出流的线程,获取安卓应用程序的配置文件,所述配置文件包括工程配置文件、基本信息配置文件和资源配置文件,所述工程配置文件(AndroidMainfest. xml)包括安卓应用程序的全局模块,所述基本信息配置文件(string, xml)定义安卓应用程序的名称,图标名称以及一些配置信息。所述资源配置文件包括drawable-hdpi文件夹、 drawable-mdpi文件和drawable文件夹,所述资源配置文件主要用来存放安卓应用程序所要用到的声音、图片文件。反编译过程中主要是通过java虚拟机的进程合并机制,执行反编译安卓应用程序的线程与读取错误输出流的线程进行合并为一个进程,这个进程合并线程的技术主要是采用由Java API官方文档所提供的技术接口实现。通过合并进程加快了反编译Android应用程序的速度。
S20 :解析所述配置文件,查找安卓应用程序的启动入口,获取该启动入口的入口信息。
请参阅图2,其为步骤S20的具体实现方法的步骤流程图。通过SAX遍历工程配置文件(AndroidMainfest. xml),判断工程配置文件中各个界面控制器组件(〈activity〉 与〈activity-alias〉)的属性值是否与预设的属性值相同。若是,该界面控制器组件为安卓应用程序的启动入口,获取该界面控制组件的入口程序名称值和入口图标名称值。所述 SAX (Simple API for XML)是个循序存取XML的解析器API。SAX提供一个机制从XML文件读取资料。
对工程配置文件(AndroidMainfest. xml)进行解析,主要是去遍历工程配置文件,获取根节点〈application〉下的所有子节点〈activity〉与〈activity-alias〉,然后再对〈activity〉与〈activity-alias〉的属性值进行判断。主要是根据〈activity〉与 〈activity-alias〉的子节点<intent_filter>下的子节点〈action〉的属性值是否等于 “android, intent, action. MAIN” 与〈category〉的属性值是否等于 “android, intent, category. LAUNCHER”。若等于,则子节点〈activity〉与〈activity-alias〉是安卓应用程序的启动入口。只有同时满足这两个条件才是安卓应用程序的启动入口。在节点〈activity〉 与〈activity-alias〉中查找所述入口信息,包括入口图标名称值和入口程序名称值。
具体地,所述入口图标名称值主要由目标地址和目标图标值组成,所述入口程序名称值主要由目标地址和目标程序值组成,根据入口程序名称值从基本配置文件中查找入口程序名称,根据入口图标名称值从资源配置文件中查找入口图标。
进一步地,根据入口程序名称值的目标地址,从目标地址指向的基本配置文件中查找程序值与目标程序值相同的入口程序名称;根据入口程序图标值的目标地址,从目标地址指向的资源配置文件中查找图标值与目标图标值相同的入口图标。
以Android应用程序Go联系人的安装程序为例首先上传Go联系人的apk安装文件,然后进行反编译安卓应用程序Go联系人,获得工程配置文件(AndroidMainfest. xml)。遍历工程配置文件,从工程配置文件中找到根节点〈application〉下的所有子节点〈activity〉与 <activity-alias>,然后再对每个〈activity〉与 <activity-alias> 下的子节点进行判断。首先找到的是工程配置文件中第一个节点〈activity〉,该节点 〈activity〉下的 <intent-filter> 的 <action> 属性值等于 “android, intent, action. MAIN” 且〈category〉属性值等于 “android, intent, category. LAUNCHER”,则满足安卓应用程序的入口条件,所以这个〈activity〉节点是本安卓应用程序的一个启动入口。以一款GO联系人安卓应用程序为例,其〈activity〉节点的入口程序名称值为“Ostring/ application_name” 与入口图标名称值为 “ Odrawab I e/app_icon_contact”。所述 “O string/application_name,,和 “OdrawabIe/app_icon_contact,,为入口信息。
S30 :根据所述启动入口的入口信息获取安卓应用程序的入口程序名称和入口图标。
根据入口信息 “@string/application_name” 和 “@drawable/app_icon_ contact”,所述代表指向,所述“/”指目标地址和目标图标值的分界线,所述“string” 是目标地址,入口信息指向基本配置文件(string, xml)。同理,所述“drawable”是目标地址,入口信息指向drawable-hdpi文件夹、drawable-mdpi文件夹和drawable文件夹。所5述“application_name”、“app_icon_contact” 为目标图标值。从基本配置文件(string. xml)中查找与目标图标值“application_name”相同的入口图标,从drawable-hdpi文件夹、drawable-mdpi文件夹、drawable文件夹中查找与目标图标值“app_icon_contact”相同的入口图标。
接着,再往下继续遍历〈activity-alias〉的〈intent-filter>,判断〈action〉与 〈category〉是否满足程序入口的条件,若满足,再去获取〈activity-alias〉对应的入口图标,直到工程配置文件解析完毕。解析完工程配置文件后,可以获得一个以上的入口图标。
以安卓应用程序Go联系人查找入口图标为例首先解析工程配置文件获取到启动入口的入口图标名称值,两个程序入口的启动入口的入口图标名称值分别为“O drawable/app_icon_dialer,,、“@drawable/app—icon_contact,,。先提取入口 图标名称值的目标地址 “drawable” ,目标图标值 “app_icon_dialer” 和 “app—icon_contact”,再分别到res目录下的drawable-hdpi文件夹、drawable-mdpi文件夹和drawable文件夹找图片名分别为“app_icon_dialer”、“app_icon_contact”的图标,获得入口图标。
从解析工程配置文件获取到程序的启动入口的入口程序名称值,根据入口程序名称值分别在安卓应用程序的res目录下的values文件夹下找到基本信息配置文件,对基本信息配置文件进行解析,再根据入口程序名称值找到相应的入口程序的入口程序名称。以安卓应用程序Go联系人查找入口程序的名称为例首先解析工程配置文件获得入口程序的入口程序名称值,2个入口程序的入口程序名称值分别为“@String/g0_dial”、“(g string/contact_shortcut”。先对入口程序名称值进行处理,提取目标地址“ string”,再提取目标程序值“go_dial”和“contact_shortcut”,再对res目录下的values文件夹下的基本信息配置文件进行解析。所述基本信息配置文件中对目标程序值“go_dial”和 “contactjhortcut”的入口程序的名称的定义。从基本信息配置文件获取目标程序值“go_ dial ” 和 “contact_shortcut” 的入口程序的名称分别为G0 Dialer> GO Contacts。
到本步骤为止,已经可以从获得入口程序名称和入口图标。获取安卓应用程序的入口图标实际就是获取了该入口图标的存放路径。用户可以根据获得的入口程序名称和入口图标,在解析的配置文件中修改相应入口程序名称,以及使用其他的图标代替安卓应用程序的入口图标。通过重命名配置文件中的入口图标名称,将该重命名的入口图标名称指向需要使用的新的入口图标或者使用原来入口图标名称命名需要使用的入口图标,将新的入口图标放置到原有入口图标的路径就可以替换原入口图标。本实施例可以自动获取到入口图标以及入口程序名称,通过修改或者替换入口图标或者入口程序名称,让新的入口图标或者入口程序名称符合用户的需求,在一定程度上丰富了用户的体验。
实施例二
请参阅图3,其为本实施的获取安卓应用程序的入口及图标的方法的步骤流程图。 本实施例与实施例一的区别在于,步骤S30之后还包括以下步骤
S40 :根据预设的路径,存储所述入口图标至该路径。
根据用户预设的路径,将获得的入口图标复制或剪切至该路径。存储获得的入口图标,可以对入口图标备份,防止用户用新入口图标替换原入口图标后,无法改回原入口图标。将获取的入口图标存储至预设的路径,也可以让用户对安卓应用程序的所有入口图标一目了然。用户可以根据所述路径的入口图标名称,修改新入口图标名称与原入口图标名称一致,将新入口图标放置在原入口图标的路径,实现入口图标的替换。
以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式
以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。·
权利要求
1.一种获取安卓应用程序的入口及图标的方法,用于查找安卓应用程序的入口及图标,其特征在于,包括以下步骤 步骤ー反编译所述安卓应用程序,获取安卓应用程序的配置文件; 步骤ニ 解析所述配置文件,查找安卓应用程序的启动入ロ,获取该启动入ロ的入口信息; 步骤三根据所述入口信息获取安卓应用程序的入口程序名称和入口图标。
2.根据权利要求I所述的获取安卓应用程序的入口及图标的方法,其特征在于,步骤一具体包括通过JAVA虚拟主机合并所述反编译安卓应用程序的线程和所述读取错误输出流的线程,获取安卓应用程序的配置文件,所述配置文件包括工程配置文件、基本信息配置文件和资源配置文件。
3.根据权利要求2所述的获取安卓应用程序的入口及图标的方法,其特征在于,步骤ニ具体包括通过SAX遍历工程配置文件,判断工程配置文件中各个界面控制器组件的属性值是否与预设的属性值相同,若是,该界面控制器组件为安卓应用程序的启动入ロ,获取该界面控制组件的入口程序名称值和入口图标名称值。
4.根据权利要求3所述的获取安卓应用程序的入口及图标的方法,其特征在于,所述步骤三具体是所述入ロ图标名称值主要由目标地址和目标图标值组成,所述入口程序名称值主要由目标地址和目标程序值组成,根据入口程序名称值从基本配置文件中查找入ロ程序名称,根据入口图标名称值从资源配置文件中查找入口图标。
5.根据权利要求4所述的获取安卓应用程序的入口及图标的方法,其特征在干,所述步骤三具体是根据入口程序名称值的目标地址,从目标地址指向的基本配置文件中查找程序值与目标程序值相同的入口程序名称;根据入口程序图标值的目标地址,从目标地址指向的资源配置文件中查找图标值与目标图标值相同的入口图标。
6.根据权利要求I所述的获取安卓应用程序的入口及图标的方法,其特征在于,步骤三之后还包括以下步骤根据预设的路径,存储所述入口图标至该路径。
全文摘要
本发明公开了一种获取安卓应用程序的入口及图标的方法,用于查找安卓应用程序的入口及图标,包括以下步骤反编译所述安卓应用程序,获取安卓应用程序的配置文件;解析所述配置文件,查找安卓应用程序的启动入口,获取该启动入口的入口信息;根据所述入口信息获取安卓应用程序的入口程序名称和入口图标。本发明解决了反编译安卓应用程序后,用户无法获知入口图标的具体位置的问题,也解决了用户无法获知该安卓应用程序有多少个入口图标的问题。
文档编号G06F9/44GK102981824SQ20121042917
公开日2013年3月20日 申请日期2012年10月31日 优先权日2012年10月31日
发明者邓裕强, 黄爱华, 梁国盛, 朱海鑫, 黄定伍 申请人:广州市久邦数码科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1