CN113110876A - 基于安卓系统的运行通用软件包的方法与设备 - Google Patents

基于安卓系统的运行通用软件包的方法与设备 Download PDF

Info

Publication number
CN113110876A
CN113110876A CN202110350575.6A CN202110350575A CN113110876A CN 113110876 A CN113110876 A CN 113110876A CN 202110350575 A CN202110350575 A CN 202110350575A CN 113110876 A CN113110876 A CN 113110876A
Authority
CN
China
Prior art keywords
hardware configuration
software package
information
module
attribute information
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.)
Pending
Application number
CN202110350575.6A
Other languages
English (en)
Inventor
罗心安
王仕友
李昊林
杜军红
葛振纲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Longcheer Technology Co Ltd
Original Assignee
Shanghai Longcheer Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Longcheer Technology Co Ltd filed Critical Shanghai Longcheer Technology Co Ltd
Priority to CN202110350575.6A priority Critical patent/CN113110876A/zh
Publication of CN113110876A publication Critical patent/CN113110876A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请的目的是提供一种基于安卓系统的运行通用软件包的方案。该方案在运行通用软件包时,先通过BootLoader读取当前设备的硬件配置信息,设置sku属性信息,再根据所述硬件配置信息,通过BootLoader加载对应的内核设备树信息,然后在init进程的运行过程中,根据所述sku属性信息生成当前设备硬件配置对应的属性值。本申请使得一种通用软件包可以兼容多种不同的硬件配置,降低软件开发成本及测试成本,同时保证通用软件包可以在不同硬件配置条件下正常运行,从而提高生产线的良率,降低生产线的维护成本,提高生产线的产能。

Description

基于安卓系统的运行通用软件包的方法与设备
技术领域
本申请涉及信息技术领域,尤其涉及一种基于安卓系统的运行通用软件包的技术。
背景技术
目前市场上基于安卓(Android)系统的终端设备种类繁多,它们的硬件配置也有很多种不同的搭配。为了给这些硬件配置各不相同的终端设备提供软件包,现有技术方案通常是针对每一种硬件配置分别出一个软件包。这样会导致软件开发成本及测试成本增大,而且容易导致生产线的良率不高,不易维护,进而影响生产线的产能。
发明内容
本申请的一个目的是提供一种基于安卓系统的运行通用软件包的方法与设备。
根据本申请的一个方面,提供了一种基于安卓系统的运行通用软件包的方法,其中,所述方法包括:
在运行通用软件包时,通过BootLoader读取当前设备的硬件配置信息,设置sku属性信息;
根据所述硬件配置信息,通过BootLoader加载对应的内核设备树信息;
在init进程的运行过程中,根据所述sku属性信息生成当前设备硬件配置对应的属性值。
根据本申请的另一个方面,还提供了一种基于安卓系统的运行通用软件包的设备,其中,所述设备包括:
第一模块,用于在运行通用软件包时,通过BootLoader读取当前设备的硬件配置信息,设置sku属性信息;
第二模块,用于根据所述硬件配置信息,通过BootLoader加载对应的内核设备树信息;
第三模块,用于在init进程的运行过程中,根据所述sku属性信息生成当前设备硬件配置对应的属性值。
根据本申请的又一个方面,还提供了一种计算设备,其中,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述的基于安卓系统的运行通用软件包的方法。
根据本申请的又一个方面,还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现所述的基于安卓系统的运行通用软件包的方法。
本申请提供的方案中,在运行通用软件包时,先通过BootLoader读取当前设备的硬件配置信息,设置sku属性信息,再根据所述硬件配置信息,通过BootLoader加载对应的内核设备树信息,然后在init进程的运行过程中,根据所述sku属性信息生成当前设备硬件配置对应的属性值。本申请使得一种通用软件包可以兼容多种不同的硬件配置,降低软件开发成本及测试成本,同时保证通用软件包可以在不同硬件配置条件下正常运行,从而提高生产线的良率,降低生产线的维护成本,提高生产线的产能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其他特征、目的和优点将会变得更明显:
图1是根据本申请实施例的一种基于安卓系统的运行通用软件包的方法流程图;
图2是根据本申请实施例的一种基于安卓系统的运行通用软件包的设备示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请实施例提供了基于安卓(Android)系统的运行通用软件包的方法,通过读取当前设备的硬件配置,在运行时兼容不同的硬件配置,使得一种通用软件包可以兼容多种不同的硬件配置,降低软件开发成本及测试成本,同时保证通用软件包可以在不同硬件配置条件下正常运行。
在实际场景中,实现该方法的设备可以是用户设备、网络设备或者用户设备与网络设备通过网络相集成所构成的设备。其中,所述用户设备包括但不限于智能手机、平板电脑、个人计算机(PC)等终端设备,所述网络设备包括但不限于网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(CloudComputing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
具体地,根据本申请实施例,可以使用一种通用软件包适配多种不同的硬件配置,在运行时兼容区分。例如:(1)在运行时区分设备的Manifest.xml文件(Android原生机制);(2)在运行时区分build.prop文件(修改Android编译逻辑实现);(3)在运行时区分设备树、驱动、服务(service)、应用(app)等。
图1是根据本申请实施例的一种基于安卓系统的运行通用软件包的方法流程图,该方法包括步骤S101、步骤S102和步骤S103。
步骤S101,在运行通用软件包时,通过BootLoader读取当前设备的硬件配置信息,设置sku属性信息。
其中,BootLoader(启动装载程序)在安卓(Android)操作系统内核运行之前运行,可以初始化硬件、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用安卓(Android)操作系统内核准备好正确的环境。
例如,所述硬件配置信息包括但不限于中央处理器(CPU)、内存等硬件信息。所述sku属性信息包括ro.boot.product.hardware.sku或者ro.boot.product.vendor.sku。
在一些实施例中,所述步骤S101包括:设置属性ro.boot.product.hardware.sku或者ro.boot.product.vendor.sku。
步骤S102,根据所述硬件配置信息,通过BootLoader加载对应的内核设备树信息。
其中,所述内核(kernel)设备树(Device Tree)信息包括设备树源码(DeviceTree Source,DTS)。
设备树(Device Tree)是一种描述硬件的数据结构。设备树(Device Tree)可以描述的信息包括CPU的数量和类别、内存基地址和大小、总线和桥、外设连接、中断控制器和中断使用情况、GPIO控制器和GPIO使用情况、Clock控制器和Clock使用情况。
步骤S103,在init进程的运行过程中,根据所述sku属性信息生成当前设备硬件配置对应的属性值。
例如,所述sku属性信息包括ro.boot.product.hardware.sku或者ro.boot.product.vendor.sku。
其中,init进程是一个由内核启动的用户级进程,当安卓(Android)系统的Linux内核启动之后,运行的第一个进程是init。
在一些实施例中,所述通用软件包包括各种硬件配置对应的manifest。例如,在所述步骤S101之前,可以将所需要的所有硬件配置的manifest编译进所述通用软件包。
其中,manifest属于AndroidManifest.xml文件,在简单的安卓(Android)系统的应用中提出了重要的信息,它可以运行任何应用程序的代码。每个安卓应用程序必须有一个AndroidManifest.xml文件,在app/manifests目录中。
在一些实施例中,所述步骤S103包括:根据所述sku属性信息,生成当前设备硬件配置对应的属性值,以及调用对应的manifest。
图2是根据本申请实施例的一种基于安卓系统的运行通用软件包的设备示意图,该设备包括第一模块201、第二模块202和第三模块203。
第一模块201,在运行通用软件包时,通过BootLoader读取当前设备的硬件配置信息,设置sku属性信息。
其中,BootLoader(启动装载程序)在安卓(Android)操作系统内核运行之前运行,可以初始化硬件、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用安卓(Android)操作系统内核准备好正确的环境。
例如,所述硬件配置信息包括但不限于中央处理器(CPU)、内存等硬件信息。所述sku属性信息包括ro.boot.product.hardware.sku或者ro.boot.product.vendor.sku。
在一些实施例中,所述第一模块201用于:设置属性ro.boot.product.hardware.sku或者ro.boot.product.vendor.sku。
第二模块202,根据所述硬件配置信息,通过BootLoader加载对应的内核设备树信息。
其中,所述内核(kernel)设备树(Device Tree)信息包括设备树源码(DeviceTree Source,DTS)。
设备树(Device Tree)是一种描述硬件的数据结构。设备树(Device Tree)可以描述的信息包括CPU的数量和类别、内存基地址和大小、总线和桥、外设连接、中断控制器和中断使用情况、GPIO控制器和GPIO使用情况、Clock控制器和Clock使用情况。
第三模块203,在init进程的运行过程中,根据所述sku属性信息生成当前设备硬件配置对应的属性值。
例如,所述sku属性信息包括ro.boot.product.hardware.sku或者ro.boot.product.vendor.sku。
其中,init进程是一个由内核启动的用户级进程,当安卓(Android)系统的Linux内核启动之后,运行的第一个进程是init。
在一些实施例中,所述通用软件包包括各种硬件配置对应的manifest。例如,在执行所述第一模块201之前,可以将所需要的所有硬件配置的manifest编译进所述通用软件包。
其中,manifest属于AndroidManifest.xml文件,在简单的安卓(Android)系统的应用中提出了重要的信息,它可以运行任何应用程序的代码。每个安卓应用程序必须有一个AndroidManifest.xml文件,在app/manifests目录中。
在一些实施例中,所述第三模块203用于:根据所述sku属性信息,生成当前设备硬件配置对应的属性值,以及调用对应的manifest。
综上所述,本申请实施例通过读取当前设备的硬件配置,在运行时兼容不同的硬件配置,使得一种通用软件包可以兼容多种不同的硬件配置,降低软件开发成本及测试成本,同时保证通用软件包可以在不同硬件配置条件下正常运行,从而提高生产线的良率,降低生产线的维护成本,提高生产线的产能。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,本申请的一些实施例提供了一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行前述本申请的多个实施例的方法和/或技术方案。
此外,本申请的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (10)

1.一种基于安卓系统的运行通用软件包的方法,其中,所述方法包括:
在运行通用软件包时,通过BootLoader读取当前设备的硬件配置信息,设置sku属性信息;
根据所述硬件配置信息,通过BootLoader加载对应的内核设备树信息;
在init进程的运行过程中,根据所述sku属性信息生成当前设备硬件配置对应的属性值。
2.根据权利要求1所述的方法,其中,设置sku属性信息,包括:
设置属性ro.boot.product.hardware.sku或者ro.boot.product.vendor.sku。
3.根据权利要求1所述的方法,其中,所述通用软件包包括各种硬件配置对应的manifest。
4.根据权利要求3所述的方法,其中,根据所述sku属性信息生成当前设备硬件配置对应的属性值,包括:
根据所述sku属性信息,生成当前设备硬件配置对应的属性值,以及调用对应的manifest。
5.一种基于安卓系统的运行通用软件包的设备,其中,所述设备包括:
第一模块,用于在运行通用软件包时,通过BootLoader读取当前设备的硬件配置信息,设置sku属性信息;
第二模块,用于根据所述硬件配置信息,通过BootLoader加载对应的内核设备树信息;
第三模块,用于在init进程的运行过程中,根据所述sku属性信息生成当前设备硬件配置对应的属性值。
6.根据权利要求5所述的设备,其中,所述第一模块用于:
设置属性ro.boot.product.hardware.sku或者ro.boot.product.vendor.sku。
7.根据权利要求5所述的设备,其中,所述通用软件包包括各种硬件配置对应的manifest。
8.根据权利要求7所述的设备,其中,所述第三模块用于:
根据所述sku属性信息,生成当前设备硬件配置对应的属性值,以及调用对应的manifest。
9.一种计算设备,其中,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至4中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现如权利要求1至4中任一项所述的方法。
CN202110350575.6A 2021-03-31 2021-03-31 基于安卓系统的运行通用软件包的方法与设备 Pending CN113110876A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110350575.6A CN113110876A (zh) 2021-03-31 2021-03-31 基于安卓系统的运行通用软件包的方法与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110350575.6A CN113110876A (zh) 2021-03-31 2021-03-31 基于安卓系统的运行通用软件包的方法与设备

Publications (1)

Publication Number Publication Date
CN113110876A true CN113110876A (zh) 2021-07-13

Family

ID=76713281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110350575.6A Pending CN113110876A (zh) 2021-03-31 2021-03-31 基于安卓系统的运行通用软件包的方法与设备

Country Status (1)

Country Link
CN (1) CN113110876A (zh)

Similar Documents

Publication Publication Date Title
US9558016B2 (en) Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product
US9934005B2 (en) Dynamically building locale objects or subsections of locale objects based on historical data
CN107807839B (zh) 一种修改虚拟机内存数据的方法、装置及电子设备
US9003363B2 (en) Device flags
US20150269052A1 (en) Method and apparatus for supporting performance analysis
CN111124288A (zh) 一种vpd存储管理方法、装置、设备及可读存储介质
JPWO2013088818A1 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
CN110716845A (zh) 一种Android系统的日志信息读取的方法
CN114237714A (zh) 命令包生成方法、装置、电子设备和存储介质
CN112667246A (zh) 应用功能扩展的方法、装置及电子设备
US8850273B2 (en) Dynamic hardware watchpoint
US9575737B1 (en) Application access to native and bundled libraries
US9141353B2 (en) Dynamically building locale objects at run-time
CN110837446A (zh) 应用于嵌入式系统的设备管理方法及装置、介质以及嵌入式设备
CN105447040B (zh) 二进制文件管理、更新方法、装置以及系统
CN113110876A (zh) 基于安卓系统的运行通用软件包的方法与设备
US10838737B1 (en) Restoration of memory content to restore machine state
CN107766385B (zh) 一种转换虚拟磁盘文件格式的方法与设备
EP3022643B1 (en) Techniques for dynamically redirecting device driver operations to user space
CN112988604B (zh) 对象测试方法、测试系统、电子设备及可读存储介质
CN111651177B (zh) 基于安卓平台的写号方法、设备及计算机可读介质
US9146720B1 (en) Binary file application processing
CN114895921B (zh) 文件处理方法、装置、电子设备及存储介质
CN111708691B (zh) 一种基于安卓平台的Fingerprint自动适配方法与设备
US11423148B2 (en) Preventing discovery of unique identifiers in firmware

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination