一种基于应用内容的安卓应用组装方法
【技术领域】
[0001] 本发明是一种对安卓应用进行应用内容抓取并进行组装的方法,属于软件技术领 域。
【背景技术】
[0002] 《第36次中国互联网发展状况统计报告》显示,截止2015年6月,中国网民规模达 6.68亿,而手机网民规模达5.94亿,占比达88.9%,手机作为主要上网终端的趋势进一步明 显。同时,《2014年中国网民捜索行为研究报告》显示,截至2014年6月,我国捜索引擎用户规 模达50749万人,网民使用率为80.3%;手机捜索引擎用户规模达到40583万人,手机网民使 用率达到77.0%。用户通过智能手机下载大量的应用,充分在日常的生活、学习、工作和娱 乐中发挥作用。据统计,平均每台智能移动终端安装的应用数量高达60甚至更多,谷歌和苹 果各自的应用分发平台上的应用数量都已到达百万级别,应用下载量已达几百亿次。
[0003] 可W看到越来越多的用户通过移动设备上安装的应用访问网络,并且很大程度上 通过捜索引擎检索资源。但是,我们注意到,虽然现有的捜素引擎有很多的形式,但是主要 的内容来源是网站。由于现有的应用都希望尽可能的留住用户,都将自己的内容和服务限 制在自己的应用中,W提供独有的服务来吸引客户。虽然有很少部分的应用提供了对应的 网页版应用,可W被捜素引擎收录和检索到,但是现在智能设备用户严重依赖的大部分应 用事实上成为了 "孤岛"。我们可W举一个很简单的例子,用户在浏览新闻的时候,看到某电 影资源,用户不得不打开一个视频应用,然后在该应用内捜索该电影资源并观看;或者是打 开一个在线购买电影票的应用,然后查看电影的播放时间和场次等信息,并进行购票业务。 如果用户有更复杂的业务需求,可能就不得不打开很多个应用,通过繁琐冗余的人工操作 和筛选来达成自己的目的。
【发明内容】
[0004] 针对现有技术中存在的问题,本发明的目的在于提供一种基于应用内容的安卓应 用的组装方法,打破安卓应用之间信息的孤立W及提供安卓应用间更自然的组装服务。其 核屯、思想是服务器端通过GoogleApp Index、魏豆芙应用内捜索W及监听网络请求数据等 公知技术抓取安卓应用的内容并建立索引,客户端用户通过选中页面中的关键内容会自动 提交给服务器,服务器端会返回根据相关度排序的应用列表,当用户选择并点击相应的应 用条目的时候,会直接启动该应用,并直接跳转到和检索关键字相关的页面。
[0005] 本发明的技术方案为:
[0006] -种基于应用内容的安卓应用组装方法,其步骤为:
[0007] 1)通过GoogleApp Index、魏豆芙应用内捜索或监听应用的网络信息等公知技术 抓取应用的页面信息,并建立索引,保存相应的信息在后台数据库中。
[000引2)用户在客户端上选中关键词,并提交给服务器端。
[0009] 3)服务器端根据客户端提交的关键词,服务器端通过分词、检索、过滤、排序等阶 段,从数据库中获取符合检索关键词的应用列表(包括应用名称、应用图标、相关页面的消 息摘要)和相应的元数据(启动应用并跳转到相关页面的跳转逻辑,包括构造 Intent对象的 相关参数),并返回给客户端。
[0010] 4)客户端将返会的应用列表根据优先级排序显示给用户(在安卓的通知栏上显 示)。
[0011] 5)当用户选择上述应用列表中的某一项安卓应用的时候,通过安卓中的Intent等 应用间通信机制启动目标应用,并自动跳转到目标应用对应的和关键词相关的Activity页 面,最终展示给用户(注,我们利用GoogleApp Index、魏豆芙应用内捜索W及反编译安卓应 用等公知技术可W获取构造启动目标应用的Intent的参数,跳转到目标应用的目标页面)。 [0012]进一步的,所述步骤1)的具体方法是通过GoogleApp IndexW及魏豆芙应用内捜 索等公知技术,或者在服务器端监控网络请求抓取页面的内容,存储到服务器的数据库中。
[0013] 进一步的,服务器端通过分词等阶段将安卓应用的信息进行处理,建立索引,为后 续的检索做准备。
[0014] 进一步的,当服务器端获取到客户端选中并提交的捜索关键词后,进行分词等初 步处理W后,利用TF-IDF模型检索到所有候选的安卓应用列表和相关信息(指定页面的跳 转逻辑和其他描述性信息)。特别地,我们可W根据其他信息,对返回的应用列表进行过滤、 评分并排序。
[0015] 进一步的,当客户端获取到服务器端返回的应用列表和相应的描述信息之后,可 W通过通知栏、悬浮窗等方式显示给用户。当用户点击某一应用表项的时候,客户端根据返 回的应用信息中的跳转逻辑(Intent的构造参数),利用安卓中的进程间通信机制(Intent, 意图)启动目标应用并跳转到目标应用的相应页面,并显示给用户。
[0016] 本发明分为客户端和服务器端两部分。客户端主要是和用户进行交互的入口,并 在用户选择目标应用的时候,启动目标应用并跳转到指定页面。服务器端主要服务安卓应 用信息的抓取和存储,然后利用提供捜索引擎的服务。
[0017] 如图所示,上述几个部分的具体技术方案如下:
[001引 1)客户端框架。客户端由应用运行引擎(App Execution Engine,AEE)构件、应用 发现(App DiscoveiT,AD)构件、界面(User Interface,UI)构件和安全(Security linhancer,SE)构件组成。
[0019] A邸有监听器和执行器两部分组成。监听器是监听安卓设备上的应用的发布的信 息的,当被监听应用启动指定的IPC发布信息后,监听器就会被触发。执行器是负责初始化 安卓的进程间通信机制(主要就是初始化Intent意图的参数),并指定相应的数据(跳转到 指定页面可能需要指定一些参数),执行之后就会启动目标应用并跳转到目标应用的相应 页面。
[0020] AD构件的作用是发现安卓设备上可能可W组装的应用,当Affi的监听器被触发后, AD构件就会向服务器端发送监听到的关键词信息,获取到一个排序后的应用列表。例如当 用户想捜索电影关键词的时候,AD构件发现手机上既有豆瓣又有猫眼电影的应用,可W推 测用户既想查看影评,也希望可W完成在线订票的业务,因此就可W通过后台服务器的检 索,返回推荐的豆瓣应用和猫眼电影应用,W及其他相关信息(可W直接显示部分影评信息 等摘要信息),然后用户查看完影评信息后,通过点击猫眼电影的入口(图标或者按钮等), 跳转到猫眼电影购票的页面进行在线订票的业务。
[0021] UI构件是客户端和用户交互的入口。当AD构件获取到候选的应用列表之后,UI构 件会将应用列表显示给用户(通知栏或者悬浮窗),用户可W通过点击某一表项启动目标应 用。
[0022] 2)服务器端框架。服务器端主要有两部分功能,一是通过GoogleApp Index、魏豆 芙应用内捜索W及监听应用网络请求等公知技术抓取大量的安卓应用信息建立信息索引 并存储在数据库中;二是和客户端的AD构件交互,获取客户端AD构件提交的关键词信息,执 行关键词查询、过滤、排序等处理过程,并将最终的应用列表和相关信息返回给客户端AD构 件。
[0023] 首先我们先定义一些术语,一个安卓应用(App)是一组资源(Resource)的集合,我 们访问安卓应用,就是访问资源的展示(Representation),安卓应用页面的跳转就是运些 展示的跳转和转移。事实上,在安卓中,我们可W认为一个展示对应一个Activity。例如,大 众点评运个应用就是店铺资源的集合,当我们点击全聚德店铺的时候,就跳转到全聚德店 铺的展示页面,包括了全聚德的地址、联系电话等信息。由于一个安卓应用可能会有不同种 类的资源,例如大众点评中既有普通的店铺资源也有团购资源,所有的店铺是一类资源,可 W看作是一个资源集(ResourceSet)。每一指定类别的资源都有共同的结构(S化ucture), 例如电影、店铺、电子书都是不同的资源,有对应的结构。每种结构有很多的特性组成 (Property ),例如电影运个结构就由电影名称、导演、主演等特性组成。
[0024] 在进行关键词查询的时候,我们利用TF-IDF模型逐一计算关键词d和用户手机上 安装了的应用的资源(Resource,安卓应用指定页面上的文字内容)的相似度。通过分词,我 们将关键词d进行分词得到{tk|k