CN117270873A - 一种基于Android应用的实时编译方法、装置、设备及介质 - Google Patents
一种基于Android应用的实时编译方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117270873A CN117270873A CN202311277828.7A CN202311277828A CN117270873A CN 117270873 A CN117270873 A CN 117270873A CN 202311277828 A CN202311277828 A CN 202311277828A CN 117270873 A CN117270873 A CN 117270873A
- Authority
- CN
- China
- Prior art keywords
- compiling
- file
- linux
- android application
- command
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000002452 interceptive effect Effects 0.000 claims abstract description 65
- 230000003993 interaction Effects 0.000 claims abstract description 9
- 230000004044 response Effects 0.000 claims description 31
- 230000006837 decompression Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 239000000969 carrier Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- RFHAOTPXVQNOHP-UHFFFAOYSA-N fluconazole Chemical compound C1=NC=NN1CC(C=1C(=CC(F)=CC=1)F)(O)CN1C=NC=N1 RFHAOTPXVQNOHP-UHFFFAOYSA-N 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种基于Android应用的实时编译方法、装置、设备及介质,涉及电子技术领域,用于解决在Android应用中不能访问Linux资源的问题。该方法包括:在创建的交互界面中输入编译命令;其中,所述交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入;响应所述编译命令,在所述Android应用中实时编译Linux环境;响应在所述交互界面中输入的Linux访问命令,在所述Android应用中对Linux资源进行访问。
Description
技术领域
本申请涉及电子技术领域,提供一种基于Android应用的实时编译方法、装置、设备及介质。
背景技术
随着Android系统的普及,Android应用已成为移动应用领域的主要载体之一。然而,随着用户需求的不断增长,Android应用需要更多的资源才能实现更多的功能。然而,尽管Android系统本身提供了丰富的API接口和功能,但仍存在某些特定场景下的需求无法得到满足的情况,例如,针对嵌入式设备、物联网边缘端和移动终端设备,这些设备的Android应用需要访问Linux资源(访问Linux文件系统、执行Linux命令等)的情况。然而,由于Android系统和Linux系统之间的差异,使得Android应用无法直接访问Linux资源,进而,就限制了Android应用的功能和性能。
因此,如何在Android应用中访问Linux资源成了目前亟待解决的问题。
发明内容
本申请提供一种基于Android应用的实时编译方法、装置、设备及介质,用于解决在Android应用中不能访问Linux资源的问题。
一方面,提供一种基于Android应用的实时编译方法,所述方法包括:
在创建的交互界面中输入编译命令;其中,所述交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入;
响应所述编译命令,在所述Android应用中实时编译Linux环境;
响应在所述交互界面中输入的Linux访问命令,在所述Android应用中对Linux资源进行访问。
可选的,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的文件获取命令,获取Ubuntu rootfs压缩文件;其中,所述Ubuntu rootfs压缩文件适用于ARM架构;
响应在所述交互界面中输入的文件解压命令,对所述Ubuntu rootfs压缩文件进行解压,获得解压后的Ubuntu rootfs文件。
可选的,所述响应在所述交互界面中输入的文件解压命令,对所述Ubuntu rootfs压缩文件进行解压,获得解压后的Ubuntu rootfs文件的步骤,包括:
响应在所述交互界面中输入的文件解压命令,将所述Ubuntu rootfs压缩文件拷贝到所述Android应用的/data/data/package_name/files文件中;
在所述Android应用中,从package_name文件切换到所述fils文件,并对所述Ubuntu rootfs压缩文件进行解压。
可选的,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的网络配置命令,在所述解压后的Ubuntu rootfs文件中配置网络接口、IP地址、DNS解析和网络路由。
可选的,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的硬件准备命令,将所述Android应用的硬件、设备、节点、文件系统挂载到所述解压后的Ubuntu rootfs文件中。
可选的,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的chroot切换命令,在所述Android应用中,从files文件切换到所述解压后的Ubuntu rootfs文件中。
可选的,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的环境变量设置命令,在所述Android应用中,设置PATH环境变量、LD_LIBRARY_PATH环境变量、文件路径环境变量以及临时文件目录环境变量。
一方面,提供一种基于Android应用的实时编译装置,所述装置包括:
编译命令输入单元,用于在创建的交互界面中输入编译命令;其中,所述交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入;
编译命令响应单元,用于响应所述编译命令,在所述Android应用中实时编译Linux环境;
资源访问单元,用于响应在所述交互界面中输入的Linux访问命令,在所述Android应用中对Linux资源进行访问。
一方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种方法。
一方面,提供一种计算机存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法。
在本申请实施例中,当Android应用需要访问Linux资源时,首先,可以在创建的交互界面中输入编译命令;其中,交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入;然后,响应该编译命令,可以在Android应用中实时编译Linux环境;最后,响应在交互界面中输入的Linux访问命令,便可以在Android应用中对Linux资源进行访问。因此,在本申请实施例中,由于在Android应用中实时编译了Linux环境,因此,便可以直接在Android应用中访问Linux资源,从而,可以满足各个特定场景下的需求。此外,由于创建了执行Linux命令的交互界面,因此,可以更加方便基于Android应用进行实时编译,从而,更加便于编程人员针对特定场景的需求进行实时编译,以及提高实时编译的效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的基于Android应用的实时编译方法的一种流程示意图;
图3为本申请实施例提供的基于Android应用的实时编译装置的一种示意图。
图中标记:10-基于Android应用的实时编译设备,101-处理器,102-存储器,103-I/O接口,104-数据库,30-基于Android应用的实时编译装置,301-编译命令输入单元,302-编译命令响应单元,303-资源访问单元。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
随着Android系统的普及,Android应用已成为移动应用领域的主要载体之一。然而,随着用户需求的不断增长,Android应用需要更多的资源才能实现更多的功能。然而,尽管Android系统本身提供了丰富的API接口和功能,但仍存在某些特定场景下的需求无法得到满足的情况,例如,针对嵌入式设备、物联网边缘端和移动终端设备,这些设备的Android应用需要访问Linux资源(访问Linux文件系统、执行Linux命令等)的情况。然而,由于Android系统和Linux系统之间的差异,使得Android应用无法直接访问Linux资源,进而,就限制了Android应用的功能和性能。
基于此,本申请实施例提供一种基于Android应用的实时编译方法,在该方法中,首先,可以在创建的交互界面中输入编译命令;其中,交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入;然后,响应该编译命令,可以在Android应用中实时编译Linux环境;最后,响应在交互界面中输入的Linux访问命令,便可以在Android应用中对Linux资源进行访问。因此,在本申请实施例中,由于在Android应用中实时编译了Linux环境,因此,便可以直接在Android应用中访问Linux资源,从而,可以满足各个特定场景下的需求。此外,由于创建了执行Linux命令的交互界面,因此,可以更加方便基于Android应用进行实时编译,从而,更加便于编程人员针对特定场景的需求进行实时编译,以及提高实时编译的效率。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
如图1所示,为本申请实施例提供的一种应用场景示意图。该应用场景中可以包括基于Android应用的实时编译设备10。
其中,基于Android应用的实时编译设备10可以用于对Android应用进行实时编译,例如,可以为个人计算机(Personal Computer,PC)、服务器与手提电脑等。基于Android应用的实时编译设备10可包括一个或者多个中央处理器101(Central Processing Unit,CPU)、存储器102、I/O接口103以及数据库104。具体的,处理器101可以为中央处理单元(central processing unit,CPU),或者为数字处理单元等等。存储器102可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器102也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flashmemory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器102可以是上述存储器的组合。存储器102中可以存储本申请实施例提供的基于Android应用的实时编译方法的部分程序指令,这些程序指令被处理器101执行时能够用以实现本申请实施例提供的基于Android应用的实时编译方法的步骤,以解决在Android应用中不能访问Linux资源的问题。数据库104可以用于存储本申请实施例提供的方案中涉及到的编译命令、Linux访问命令和Linux资源等数据。
在本申请实施例中,基于Android应用的实时编译设备10可以通过I/O接口103获取编译命令,然后,基于Android应用的实时编译设备10的处理器101会按照存储器102中本申请实施例提供的基于Android应用的实时编译方法的程序指令来在Android应用中实时编译Linux环境。当然,还可以通过I/O接口103来获取Linux访问命令,以便直接在Android应用中对Linux资源进行访问。此外,还可以将编译命令、Linux访问命令和Linux资源等数据存储于数据库104中。
当然,本申请实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其他可能的应用场景,本申请实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。下面,将结合附图对本申请实施例的方法进行介绍。
如图2所示,为本申请实施例提供的基于Android应用的实时编译方法的一种流程示意图,该方法可以通过图1中的基于Android应用的实时编译设备10来执行,具体的,该方法的流程介绍如下。
步骤201:在创建的交互界面中输入编译命令。
在本申请实施例中,交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入。
具体的,为了更加方便编程人员基于Android应用能够针对特定场景的需求进行实时编译,以及提高实时编译的效率,因此,在本申请实施例中,在进行实时编译之前,可以基于Android应用程序,来创建一个交互界面来显示终端的输入和输出。其中,可以使用Android应用中的TextView组件来显示输出,以及在Android应用中添加一个EditText组件或类似的控件来显示输入。
进而,当编程人员在交互界面上输入命令时,Android终端则会对输入的命令进行处理,即,会捕获在EditText组件中输入的命令,并对命令进行解析。然后,Android终端会执行该输入命令,即,可以将解析好的输入命令通过Android系统提供的API接口传递给Android系统,以使Android系统可以执行相应的操作。最后,Android终端可以将处理结果进行输出,即,当Android终端执行完命令并输出结果时,可以将结果显示在TextView组件中供用户查看。
那么,当编程人员要对Android应用进行实时编译时,便可以直接在创建的交互界面中输入编译命令,从而,可使用户能够通过Android应用需要访问Linux资源。
在一种可能的实施方式中,为了确保上述操作能够正常运行,在本申请实施例中,还可以获取适当的权限,例如,文件系统访问权限、文件读写权限等。
步骤202:响应编译命令,在Android应用中实时编译Linux环境。
在本申请实施例中,在交互界面中输入编译命令之后,Android终端会响应输入的编译命令,即,Android终端会对输入编译命令进行解析与执行,以在Android应用中实时编译Linux环境。
步骤203:响应在交互界面中输入的Linux访问命令,在Android应用中对Linux资源进行访问。
在Android应用中实时编译Linux环境之后,为了能够在Android应用中对Linux资源进行访问,在本申请实施例中,则可以在交互界面中输入Linux访问命令,进而,Android终端则会响应Linux访问命令,从而,对输入的Linux访问命令进行解析与执行,以在Android应用中对Linux资源进行访问。
在一种可能的实施方式中,由于通常情况下,Android应用中并没有设置可以访问Linux资源的环境,因此,在本申请实施例中,为了使在Android应用中能够访问Linux资源,可以响应在交互界面中输入的文件获取命令,以获取Ubuntu rootfs压缩文件;其中,Ubuntu rootfs压缩文件适用于ARM架构,且可以从Ubuntu官方网站进行下载。然后,可以响应在交互界面中输入的文件解压命令,以对Ubuntu rootfs压缩文件进行解压,从而,获得解压后的Ubuntu rootfs文件。
在一种可能的实施方式中,为了使在Android应用中能够访问Linux资源,在本申请实施例中,在对Ubuntu rootfs压缩文件进行解压时,具体可以响应在交互界面中输入的文件解压命令,以将Ubuntu rootfs压缩文件拷贝到Android应用内部的/data/data/package_name/files文件中。然后,在Android应用中,便可以直接从package_name文件切换到fils文件,并对Ubuntu rootfs压缩文件进行解压。
在一种可能的实施方式中,由于默认情况下,Ubuntu rootfs压缩文件中是没有配置网络的。因此,为了使在Android应用中能够访问Linux资源,在本申请实施例中,还可以响应在交互界面中输入的网络配置命令,以在解压后的Ubuntu rootfs文件中配置网络接口、IP地址、域名系统(Domain Name System,DNS)解析和网络路由,以使终端能够连接到互联网。
具体的,在配置网络接口时,首先,可以通过“ip link”来查看Android设备上的网络接口名称,然后,确定网络接口是否启用,若确定网络接口没有启用,则可以通过“iplink set wlan0 up”来启用网络接口。
在配置IP地址时,网络可以使用动态主机配置协议(Dynamic HostConfiguration Protocol,DHCP),具体的,可以通过“dhclient wlan0”来为网络接口配置一个IP地址。例如,IP地址为192.168.0.100,子网掩码为24位,则网络可以通过“ip addradd 192.168.0.100/24dev wlan0”来手动配置IP地址。
在配置DNS解析时,可以通过“echo"nameserver 8.8.8.8">/etc/resolv.conf”来设置DNS服务器以解析域名。
在一种可能的实施方式中,为了使在Android应用中能够访问Linux资源,在本申请实施例中,作为在Android应用上部署的Linux环境,还需要将Android应用的硬件、设备、节点、文件系统挂载到Ubuntu rootfs里。具体的,可以响应在交互界面中输入的硬件准备命令,来将Android应用的硬件、设备、节点、文件系统挂载到解压后的Ubuntu rootfs文件中。其中,可以将提供关于系统和进程的信息的虚拟文件系统/proc、包含设备文件的文件/dev以及虚拟文件系统/sys挂载到解压后的Ubuntu rootfs文件中,且还可以通过“mount--bind/”命令来将目标文件挂载到其他文件下。
在本申请实施例中,在挂载Android设备的实际/proc文件时,可以通过“mount-obind/proc/data/data/package_name/files/Ubuntu_rootfs/proc”,以使Ubuntu环境可以正确访问系统信息。
在挂载Android设备的实际/dev文件时,可以通过“mount-o bind/dev
/data/data/package_name/files/Ubuntu_rootfs/dev”,以使Ubuntu环境可以访问设备节点,例如,USB外接相机、串口等。
在挂载Android设备的实际/sys文件时,可以通过“mount-o bind/sys
/data/data/package_name/files/Ubuntu_rootfs/sys”,以使Ubuntu环境可以正确查看主机Android设备和内核信息。
在一种可能的实施方式中,为了Android终端认为自己是在Ubuntu环境中运行,在本申请实施例中,可以响应在交互界面中输入的chroot切换命令,以使在Android应用中,从files文件切换到解压后的Ubuntu rootfs文件中。具体的,可以通过“chroot/data/data/package_name/files/ubuntu_rootfs/bin/bash”来实现这一切换过程。
在一种可能的实施方式中,为了便于正确运行应用程序,在本申请实施例中,在chroot环境中,还需要对一些基本环境设置进行调整,具体的,可以响应在交互界面中输入的环境变量设置命令,在Android应用中,可以设置PATH环境变量、LD_LIBRARY_PATH环境变量、文件路径环境变量以及临时文件目录环境变量。其中,PATH环境变量用于指定Android系统在哪些文件中查找可执行文件,LD_LIBRARY_PATH环境变量用于指定Android系统在哪些文件中查找共享库文件。
在一种可能的实施方式中,在本申请实施例中,除了可以基于Android应用进行实时编译,来访问Linux资源,还可以基于Linux应用进行实时编译,来访问Android资源,该Android环境的实时编译过程,与Linux环境的实时编译过程类似,这里就不多做赘述。
综上所述,在本申请实施例中,由于在Android应用中实时编译了Linux环境,因此,便可以直接在Android应用中访问Linux资源,从而,可以满足各个特定场景下的需求。此外,由于创建了执行Linux命令的交互界面,因此,可以更加方便基于Android应用进行实时编译,从而,更加便于编程人员针对特定场景的需求进行实时编译,以及提高实时编译的效率。
基于同一发明构思,本申请实施例提供一种基于Android应用的实时编译装置30,如图3所示,该基于Android应用的实时编译装置30包括:
编译命令输入单元301,用于在创建的交互界面中输入编译命令;其中,交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入;
编译命令响应单元302,用于响应编译命令,在Android应用中实时编译Linux环境;
资源访问单元303,用于响应在交互界面中输入的Linux访问命令,在Android应用中对Linux资源进行访问。
可选的,编译命令响应单元302,还用于:
响应在交互界面中输入的文件获取命令,获取Ubuntu rootfs压缩文件;其中,Ubuntu rootfs压缩文件适用于ARM架构;
响应在交互界面中输入的文件解压命令,对Ubuntu rootfs压缩文件进行解压,获得解压后的Ubuntu rootfs文件。
可选的,编译命令响应单元302,还用于:
响应在交互界面中输入的文件解压命令,将Ubuntu rootfs压缩文件拷贝到Android应用的/data/data/package_name/files文件中;
在Android应用中,从package_name文件切换到fils文件,并对Ubuntu rootfs压缩文件进行解压。
可选的,编译命令响应单元302,还用于:
响应在交互界面中输入的网络配置命令,在解压后的Ubuntu rootfs文件中配置网络接口、IP地址、DNS解析和网络路由。
可选的,编译命令响应单元302,还用于:
响应在交互界面中输入的硬件准备命令,将Android应用的硬件、设备、节点、文件系统挂载到解压后的Ubuntu rootfs文件中。
可选的,编译命令响应单元302,还用于:
响应在交互界面中输入的chroot切换命令,在Android应用中,从files文件切换到解压后的Ubuntu rootfs文件中。
可选的,编译命令响应单元302,还用于:
响应在交互界面中输入的环境变量设置命令,在Android应用中,设置PATH环境变量、LD_LIBRARY_PATH环境变量、文件路径环境变量以及临时文件目录环境变量。
该基于Android应用的实时编译装置30可以用于执行图2所示的实施例中基于Android应用的实时编译装置所执行的方法,因此,对于该基于Android应用的实时编译装置30的各功能模块所能够实现的功能等可参考图2所示的实施例的描述,不多赘述。
在一些可能的实施方式中,本申请提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图2所示的实施例中基于Android应用的实时编译装置所执行的方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种基于Android应用的实时编译方法,其特征在于,所述方法包括:
在创建的交互界面中输入编译命令;其中,所述交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入;
响应所述编译命令,在所述Android应用中实时编译Linux环境;
响应在所述交互界面中输入的Linux访问命令,在所述Android应用中对Linux资源进行访问。
2.如权利要求1所述的方法,其特征在于,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的文件获取命令,获取Ubuntu rootfs压缩文件;其中,所述Ubuntu rootfs压缩文件适用于ARM架构;
响应在所述交互界面中输入的文件解压命令,对所述Ubuntu rootfs压缩文件进行解压,获得解压后的Ubuntu rootfs文件。
3.如权利要求2所述的方法,其特征在于,所述响应在所述交互界面中输入的文件解压命令,对所述Ubuntu rootfs压缩文件进行解压,获得解压后的Ubuntu rootfs文件的步骤,包括:
响应在所述交互界面中输入的文件解压命令,将所述Ubuntu rootfs压缩文件拷贝到所述Android应用的/data/data/package_name/files文件中;
在所述Android应用中,从package_name文件切换到所述fils文件,并对所述Ubunturootfs压缩文件进行解压。
4.如权利要求2所述的方法,其特征在于,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的网络配置命令,在所述解压后的Ubuntu rootfs文件中配置网络接口、IP地址、DNS解析和网络路由。
5.如权利要求2所述的方法,其特征在于,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的硬件准备命令,将所述Android应用的硬件、设备、节点、文件系统挂载到所述解压后的Ubuntu rootfs文件中。
6.如权利要求2所述的方法,其特征在于,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的chroot切换命令,在所述Android应用中,从files文件切换到所述解压后的Ubuntu rootfs文件中。
7.如权利要求1所述的方法,其特征在于,所述响应所述编译命令,在所述Android应用中实时编译Linux环境的步骤,包括:
响应在所述交互界面中输入的环境变量设置命令,在所述Android应用中,设置PATH环境变量、LD_LIBRARY_PATH环境变量、文件路径环境变量以及临时文件目录环境变量。
8.一种基于Android应用的实时编译装置,其特征在于,所述装置包括:
编译命令输入单元,用于在创建的交互界面中输入编译命令;其中,所述交互界面用于执行Linux命令交互,且采用TextView组件来显示输出,采用EditText组件来显示输入;
编译命令响应单元,用于响应所述编译命令,在所述Android应用中实时编译Linux环境;
资源访问单元,用于响应在所述交互界面中输入的Linux访问命令,在所述Android应用中对Linux资源进行访问。
9.一种电子设备,其特征在于,所述设备包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1-7中任一所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311277828.7A CN117270873A (zh) | 2023-09-28 | 2023-09-28 | 一种基于Android应用的实时编译方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311277828.7A CN117270873A (zh) | 2023-09-28 | 2023-09-28 | 一种基于Android应用的实时编译方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117270873A true CN117270873A (zh) | 2023-12-22 |
Family
ID=89215792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311277828.7A Pending CN117270873A (zh) | 2023-09-28 | 2023-09-28 | 一种基于Android应用的实时编译方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117270873A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118377585A (zh) * | 2024-06-25 | 2024-07-23 | 成都阿加犀智能科技有限公司 | 一种Docker容器在安卓系统应用的方法、装置、介质及设备 |
-
2023
- 2023-09-28 CN CN202311277828.7A patent/CN117270873A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118377585A (zh) * | 2024-06-25 | 2024-07-23 | 成都阿加犀智能科技有限公司 | 一种Docker容器在安卓系统应用的方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
US11461111B2 (en) | Method for running applets, and electronic device | |
CN112256286B (zh) | 一种应用运行的方法、装置及计算机存储介质 | |
US9602347B2 (en) | Method, system and program for browser to switch IE kernel | |
US10108442B1 (en) | Optimization and affinity for hypervisor-based just-in-time translator | |
US20100205604A1 (en) | Systems and methods for efficiently running multiple instances of multiple applications | |
CN107239309B (zh) | 补丁生成方法及装置、更新方法、电子设备、存储介质 | |
CN107479868B (zh) | 一种界面加载方法、装置及设备 | |
US20150317172A1 (en) | Generating a replacement binary for emulation of an application | |
CN111930382B (zh) | 应用页面的接入方法、装置及设备 | |
US9996379B2 (en) | Program execution without the use of bytecode modification or injection | |
CN108776587B (zh) | 数据获取方法、装置、计算机设备以及存储介质 | |
CN113885849B (zh) | 基于工业互联网平台的应用开发方法、装置及终端设备 | |
CN117270873A (zh) | 一种基于Android应用的实时编译方法、装置、设备及介质 | |
CN111274512A (zh) | 一种页面加载方法、装置及介质 | |
US9513762B1 (en) | Static content updates | |
CN115237436A (zh) | 应用部署方法、装置、电子设备及可读存储介质 | |
CN115291946A (zh) | 鸿蒙系统移植方法、装置、电子设备及可读介质 | |
CN110020370B (zh) | 在客户端应用中实现动画的方法、装置及动画脚本的框架 | |
CN114268538A (zh) | 前端路由的配置方法和装置 | |
US20150268976A1 (en) | Sharing Applications in a Java Virtual Machine | |
CN117008920A (zh) | 引擎系统、请求处理方法、装置、计算机设备及存储介质 | |
CN109144948B (zh) | 应用文件定位的方法、装置、电子设备和存储器 | |
CN115757287A (zh) | 目标文件的构建方法、装置及存储介质 | |
CN113094086B (zh) | 组件集成方法、装置、计算机可读存储介质及电子设备 |
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 |