CN102981824A - 一种获取安卓应用程序的入口及图标的方法 - Google Patents
一种获取安卓应用程序的入口及图标的方法 Download PDFInfo
- Publication number
- CN102981824A CN102981824A CN2012104291774A CN201210429177A CN102981824A CN 102981824 A CN102981824 A CN 102981824A CN 2012104291774 A CN2012104291774 A CN 2012104291774A CN 201210429177 A CN201210429177 A CN 201210429177A CN 102981824 A CN102981824 A CN 102981824A
- Authority
- CN
- China
- Prior art keywords
- icon
- entrance
- application program
- android application
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种获取安卓应用程序的入口及图标的方法,用于查找安卓应用程序的入口及图标,包括以下步骤:反编译所述安卓应用程序,获取安卓应用程序的配置文件;解析所述配置文件,查找安卓应用程序的启动入口,获取该启动入口的入口信息;根据所述入口信息获取安卓应用程序的入口程序名称和入口图标。本发明解决了反编译安卓应用程序后,用户无法获知入口图标的具体位置的问题,也解决了用户无法获知该安卓应用程序有多少个入口图标的问题。
Description
技术领域
本发明涉及安卓应用程序领域,尤其是一种获取安卓应用程序的入口及图标的方法。
背景技术
安卓系统(Android)是基于Linux开放性内核的操作系统。随着越来越多的人使用安卓系统手机,安卓应用程序也越来越多,安卓应用程序的图标给用户带来了界面的炫酷体验,丰富了安卓的UI系统。由于安卓应用程序可能有多个入口,每个入口对应一个图标。因此,市面上原有的解压安卓应用程序再到用户自己到相应的目录查找图标的方法已经无法满足用户的需求。原因是一般用户根本不知道安卓应用程序图标具体的位置也不知道程序的入口有几个。这样获取Android安卓应用程序的入口及图标则显得越来越困难,开发者也不愿开放自己的源码与素材。一般用户也很难在网上找到相应的Android安卓应用程序的入口与图标,怎样才能更加高效更加快速的获取Android安卓应用程序的入口与图标显的尤为重要。用户获得这些入口程序名称和入口图标之后,可以根据自己的习惯,修改相应的入口图标和入口程序名称。
发明内容
本发明的目的,就是克服现有技术的不足,提供一种可以获取安卓应用程序名称和入口图标名称的方法,本方法可以获取安卓应用程序所有入口程序名称和入口图标,免除了用户手动查找多个入口图标,进而修改所需入口程序名称和入口图标的麻烦。
为了达到上述目的,采用如下技术方案:
一种获取安卓应用程序的入口及图标的方法,用于查找安卓应用程序的入口及图标,包括以下步骤:
步骤一:反编译所述安卓应用程序,获取安卓应用程序的配置文件;
步骤二:解析所述配置文件,查找安卓应用程序的启动入口,获取该启动入口的入口信息;
步骤三:根据所述入口信息获取安卓应用程序的入口程序名称和入口图标。
进一步地,步骤一具体包括:通过JAVA虚拟主机合并所述反编译安卓应用程序的线程和所述读取错误输出流的线程,获取安卓应用程序的配置文件,所述配置文件包括工程配置文件、基本信息配置文件和资源配置文件。
进一步地,步骤二具体包括:通过SAX遍历工程配置文件,判断工程配置文件中各个界面控制器组件的属性值是否与预设的属性值相同,若是,该界面控制器组件为安卓应用程序的启动入口,获取该界面控制组件的入口程序名称值和入口图标名称值。
进一步地,所述步骤三具体是:所述入口图标名称值主要由目标地址和目标图标值组成,所述入口程序名称值主要由目标地址和目标程序值组成,根据入口程序名称值从基本配置文件中查找入口程序名称,根据入口图标名称值从资源配置文件中查找入口图标。
进一步地,所述步骤三具体是:根据入口程序名称值的目标地址,从目标地址指向的基本配置文件中查找程序值与目标程序值相同的入口程序名称;根据入口程序图标值的目标地址,从目标地址指向的资源配置文件中查找图标值与目标图标值相同的入口图标。
进一步地,根据预设的路径,存储所述入口图标至该路径。
与现有技术相比,本发明的有益效果在于:
1.本发明解决了反编译安卓应用程序后,用户无法获知入口图标的具体位置的问题,也解决了用户无法获知该安卓应用程序有多少个入口图标的问题。
2.本发明可以通过合并反编译安卓应用程序的线程和读取错误输出流的线程,可以有效快速地获得反编译后的应用图标具体位置。
3.本发明可以获取到安卓应用程序的所有入口图标,用户可以根据反编译的结果找到入口图标,修改入口图标。
4.本发明可以获取安卓应用程序的入口程序的名称,让用户可以获得每个入口程序的名称,还可以修改入口程序的名称。
附图说明
图1是本发明第一实施例所述的获取安卓应用程序的入口及图标的方法的步骤流程图;
图2是本发明第一实施例步骤二的具体实现方法的步骤流程图;
图3是本发明第二实施例所述的获取安卓应用程序的入口及图标的方法的步骤流程图。
具体实施方式
下面将结合附图以及具体实施方法来详细说明本发明,在本发明的示意性实施及说明用来解释本发明,但并不作为对本发明的限定。
实施例一
请参阅图1,其为本发明的一种获取安卓应用程序的入口及图标的方法的步骤流程图,用于查找安卓应用程序的入口及入口图标,包括以下步骤:
S10:反编译所述安卓应用程序,获取安卓应用程序的配置文件。
具体地,提供一安卓应用程序,通过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>节点的入口程序名称值为“string/application_name”与入口图标名称值为“drawable/app_icon_contact”。所述“string/application_name”和“drawable/app_icon_contact”为入口信息。
S30:根据所述启动入口的入口信息获取安卓应用程序的入口程序名称和入口图标。
根据入口信息“string/application_name”和“drawable/app_icon_contact”,所述“”代表指向,所述“/”指目标地址和目标图标值的分界线,所述“string”是目标地址,入口信息指向基本配置文件(string.xml)。同理,所述“drawable”是目标地址,入口信息指向drawable-hdpi文件夹、drawable-mdpi文件夹和drawable文件夹。所述“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联系人查找入口图标为例:首先解析工程配置文件获取到启动入口的入口图标名称值,两个程序入口的启动入口的入口图标名称值分别为“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/go_dial”、“string/contact_shortcut”。先对入口程序名称值进行处理,提取目标地址“string”,再提取目标程序值“go_dial”和“contact_shortcut”,再对res目录下的values文件夹下的基本信息配置文件进行解析。所述基本信息配置文件中对目标程序值“go_dial”和“contact_shortcut”的入口程序的名称的定义。从基本信息配置文件获取目标程序值“go_dial”和“contact_shortcut”的入口程序的名称分别为:GO Dialer、GO Contacts。
到本步骤为止,已经可以从获得入口程序名称和入口图标。获取安卓应用程序的入口图标实际就是获取了该入口图标的存放路径。用户可以根据获得的入口程序名称和入口图标,在解析的配置文件中修改相应入口程序名称,以及使用其他的图标代替安卓应用程序的入口图标。通过重命名配置文件中的入口图标名称,将该重命名的入口图标名称指向需要使用的新的入口图标或者使用原来入口图标名称命名需要使用的入口图标,将新的入口图标放置到原有入口图标的路径就可以替换原入口图标。本实施例可以自动获取到入口图标以及入口程序名称,通过修改或者替换入口图标或者入口程序名称,让新的入口图标或者入口程序名称符合用户的需求,在一定程度上丰富了用户的体验。
实施例二
请参阅图3,其为本实施的获取安卓应用程序的入口及图标的方法的步骤流程图。本实施例与实施例一的区别在于,步骤S30之后还包括以下步骤:
S40:根据预设的路径,存储所述入口图标至该路径。
根据用户预设的路径,将获得的入口图标复制或剪切至该路径。存储获得的入口图标,可以对入口图标备份,防止用户用新入口图标替换原入口图标后,无法改回原入口图标。将获取的入口图标存储至预设的路径,也可以让用户对安卓应用程序的所有入口图标一目了然。用户可以根据所述路径的入口图标名称,修改新入口图标名称与原入口图标名称一致,将新入口图标放置在原入口图标的路径,实现入口图标的替换。
以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种获取安卓应用程序的入口及图标的方法,用于查找安卓应用程序的入口及图标,其特征在于,包括以下步骤:
步骤一:反编译所述安卓应用程序,获取安卓应用程序的配置文件;
步骤二:解析所述配置文件,查找安卓应用程序的启动入口,获取该启动入口的入口信息;
步骤三:根据所述入口信息获取安卓应用程序的入口程序名称和入口图标。
2.根据权利要求1所述的获取安卓应用程序的入口及图标的方法,其特征在于,步骤一具体包括:通过JAVA虚拟主机合并所述反编译安卓应用程序的线程和所述读取错误输出流的线程,获取安卓应用程序的配置文件,所述配置文件包括工程配置文件、基本信息配置文件和资源配置文件。
3.根据权利要求2所述的获取安卓应用程序的入口及图标的方法,其特征在于,步骤二具体包括:通过SAX遍历工程配置文件,判断工程配置文件中各个界面控制器组件的属性值是否与预设的属性值相同,若是,该界面控制器组件为安卓应用程序的启动入口,获取该界面控制组件的入口程序名称值和入口图标名称值。
4.根据权利要求3所述的获取安卓应用程序的入口及图标的方法,其特征在于,所述步骤三具体是:所述入口图标名称值主要由目标地址和目标图标值组成,所述入口程序名称值主要由目标地址和目标程序值组成,根据入口程序名称值从基本配置文件中查找入口程序名称,根据入口图标名称值从资源配置文件中查找入口图标。
5.根据权利要求4所述的获取安卓应用程序的入口及图标的方法,其特征在于,所述步骤三具体是:根据入口程序名称值的目标地址,从目标地址指向的基本配置文件中查找程序值与目标程序值相同的入口程序名称;根据入口程序图标值的目标地址,从目标地址指向的资源配置文件中查找图标值与目标图标值相同的入口图标。
6.根据权利要求1所述的获取安卓应用程序的入口及图标的方法,其特征在于,步骤三之后还包括以下步骤:根据预设的路径,存储所述入口图标至该路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210429177.4A CN102981824B (zh) | 2012-10-31 | 2012-10-31 | 一种获取安卓应用程序的入口及图标的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210429177.4A CN102981824B (zh) | 2012-10-31 | 2012-10-31 | 一种获取安卓应用程序的入口及图标的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102981824A true CN102981824A (zh) | 2013-03-20 |
CN102981824B CN102981824B (zh) | 2016-04-27 |
Family
ID=47855889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210429177.4A Active CN102981824B (zh) | 2012-10-31 | 2012-10-31 | 一种获取安卓应用程序的入口及图标的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102981824B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572089A (zh) * | 2014-12-26 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 生成安卓安装包的方法和装置 |
CN105975311A (zh) * | 2016-05-09 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 一种应用启动方法及装置 |
CN106484482A (zh) * | 2016-10-10 | 2017-03-08 | 广东欧珀移动通信有限公司 | 一种多开应用中的分身应用管理方法、装置及智能终端 |
CN111766987A (zh) * | 2020-05-29 | 2020-10-13 | 维沃移动通信有限公司 | 应用程序管理方法、装置及电子设备 |
CN114327177A (zh) * | 2021-11-15 | 2022-04-12 | 读书郎教育科技有限公司 | 一种基于儿童手表的多图标应用的管控方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001067286A2 (en) * | 2000-03-03 | 2001-09-13 | Merinta, Inc. | Framework for a customizable graphics user interface |
CN102681828A (zh) * | 2011-03-14 | 2012-09-19 | 联想(北京)有限公司 | 终端设备和应用图标的生成方法 |
CN102750168A (zh) * | 2012-06-07 | 2012-10-24 | Tcl集团股份有限公司 | 应用图标更新方法及装置 |
-
2012
- 2012-10-31 CN CN201210429177.4A patent/CN102981824B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001067286A2 (en) * | 2000-03-03 | 2001-09-13 | Merinta, Inc. | Framework for a customizable graphics user interface |
CN102681828A (zh) * | 2011-03-14 | 2012-09-19 | 联想(北京)有限公司 | 终端设备和应用图标的生成方法 |
CN102750168A (zh) * | 2012-06-07 | 2012-10-24 | Tcl集团股份有限公司 | 应用图标更新方法及装置 |
Non-Patent Citations (2)
Title |
---|
ERIC_ZHANG: ""一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成"", 《HTTP://MY.OSCHIAN.NET/ZHANGQINGCAI/BLOG/42085》, 1 March 2012 (2012-03-01) * |
一啸倾城: "定制属于自己的APK", 《电脑迷》, 30 November 2011 (2011-11-30) * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572089A (zh) * | 2014-12-26 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 生成安卓安装包的方法和装置 |
CN104572089B (zh) * | 2014-12-26 | 2018-09-14 | 北京京东尚科信息技术有限公司 | 生成安卓安装包的方法和装置 |
CN105975311A (zh) * | 2016-05-09 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 一种应用启动方法及装置 |
CN105975311B (zh) * | 2016-05-09 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 一种应用启动方法及装置 |
CN106484482A (zh) * | 2016-10-10 | 2017-03-08 | 广东欧珀移动通信有限公司 | 一种多开应用中的分身应用管理方法、装置及智能终端 |
CN106484482B (zh) * | 2016-10-10 | 2019-12-10 | Oppo广东移动通信有限公司 | 一种多开应用中的分身应用管理方法、装置及智能终端 |
CN111766987A (zh) * | 2020-05-29 | 2020-10-13 | 维沃移动通信有限公司 | 应用程序管理方法、装置及电子设备 |
CN111766987B (zh) * | 2020-05-29 | 2022-04-12 | 维沃移动通信有限公司 | 应用程序管理方法、装置及电子设备 |
CN114327177A (zh) * | 2021-11-15 | 2022-04-12 | 读书郎教育科技有限公司 | 一种基于儿童手表的多图标应用的管控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102981824B (zh) | 2016-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10699061B2 (en) | Application page quick access | |
CN102946599B (zh) | 实现移动终端应用程序下载的方法及移动终端 | |
US20160070431A1 (en) | Sync based on navigation history | |
CN110674408B (zh) | 业务平台、训练样本的实时生成方法及装置 | |
CN102981824B (zh) | 一种获取安卓应用程序的入口及图标的方法 | |
WO2016082598A1 (zh) | 一种快速查找应用程序的方法、装置及设备 | |
CN103699389A (zh) | 一种基于编译选项的Linux内核模块关系提取方法 | |
CN107577711B (zh) | 一种图片缓存的方法和装置 | |
CN107679113A (zh) | 轻应用的获取方法、设备及电子设备 | |
US10949399B2 (en) | Dynamically synchronizing electronic surveys and collaborative survey representation documents | |
CN106648638B (zh) | 一种基于python的R.java文件的优化方法及优化系统 | |
CN103530427A (zh) | 一种基于多数据库的动态切换方法和装置 | |
WO2014187159A1 (en) | A method and an apparatus for performing offline access to web pages | |
US11256603B2 (en) | Generating and attributing unique identifiers representing performance issues within a call stack | |
CN110069264A (zh) | 构建资源包的方法、装置、计算机设备和存储介质 | |
CN102930190A (zh) | 一种在安卓系统中阻止用户获取超级用户权限的方法 | |
CN113010476A (zh) | 元数据查找方法、装置、设备及计算机可读存储介质 | |
CN104156240A (zh) | 客户端的皮肤模板更换方法、装置、客户端及电子设备 | |
US10104051B2 (en) | Searching content associated with multiple applications | |
CN105159673A (zh) | 一种设置控件样式的方法和装置 | |
CN111857934A (zh) | 一种页面加载方法、装置、电子设备及存储介质 | |
CN105094941B (zh) | 一种实现多语言的方法及装置 | |
CN112463808A (zh) | 目标集群的数据处理方法、装置和服务器 | |
CN104317857A (zh) | 一种房屋信息采集服务系统 | |
CN109558553B (zh) | 样式确定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20171124 Address after: 510055, tower 17, A tower, Zhonghua International Center, No. three, 33 Zhongshan Road, Yuexiu District, Guangdong, Guangzhou, China Patentee after: Guangzhou jiubang century science and Technology Co Ltd Address before: 510055 A, block 16-17, China International Center, No. three, Zhongshan Road, Guangzhou, Guangdong, China Patentee before: Guangzhou Jiubang Digital Technology Co., Ltd. |