在Android中启动JAVA程序其实有很多种方式,现总结如下
一、在Android应用程序中发送Intent启动Android应用程序
这个方式最简单,最常用。在此不在累述。关于Intent的更多内容请阅读《Intent技术简介》
二、在shell控制台通过am命令发送Intent来启动Android应用程序
在Android的shell控制台通过am命令发送Intent来启动Android应用程序
关于此的详细内容请参考《Android命令am详解》
三、在shell控制台直接通过davlikvm命令启动一个JAVA程序。
该方式有个天生的缺点,即在其中,很多Android的JNI无法调用。因为Android的很多JNI其实是需要手动注册的。
关于请参考《基本Dalvik VM调用》
四、在shell控制台直接通过运行app_process程序启动一个JAVA程序
在app_process程序中,他会对Android的JNI进行手动注册的,能很好的使用Android的API,因此通过运行app_process程序启动一个JAVA程序,是一个比较完美的方式。app_process程序是一个C程序,它的源码位于frameworks\base\cmds\app_process。
关于它的使用请参考《Android命令am详解》以及shell脚本frameworks\base\cmds\am\am和frameworks\base\cmds\pm\pm
am脚本文件如下: # Script to start "am" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/am.jar
exec app_process $base/bin com.android.commands.am.Am "$@"
pm脚本文件如下:
# Script to start "pm" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"
CLASSPATH指定了你的程序的位置,com.android.commands.pm.Pm则说明了程序的入口为com.android.commands.pm.Pm,即入口函数main()所在的类,"$@"就是传递给main()函数的参数,只是这里"$@"本身又是个shell传入的参数而已
需要注意的是CLASSPATH中的文件必须是dalvik文件格式的,关于此的转换请参考《基本Dalvik VM调用》当然CLASSPATH中的文件可以是apk文件,只是你的apk中至少应该有个拥有main()入口函数的类
分享到:
相关推荐
这里我们将深入探讨Android启动界面的设计原理、实现方式以及源码中的关键组件和步骤。 首先,Android启动界面主要由两部分组成:启动图片和背景动画。启动图片通常是应用的logo,而背景动画可以是简单的淡入淡出、...
在Android应用开发中,启动画面(Splash Screen)是用户打开应用程序时首先看到的界面,它通常展示品牌标识、公司logo或者加载进度,为应用程序的主要部分完成初始化工作提供一个视觉过渡。"android程序启动画面源码...
在Android开发中,程序启动界面(Splash ...总之,创建一个高效的Android启动界面,不仅需要考虑视觉效果,还需要优化加载速度和用户体验。通过合理的代码设计和资源管理,我们可以实现一个既美观又实用的启动界面。
在Android应用开发中,"开机自启动"是一个常见的需求,特别是在需要后台服务持续运行或者希望应用程序在用户开机后立即可用的情况下。本知识点主要讲解如何利用Android的广播接收器(BroadcastReceiver)来实现在...
在Android系统中,开机启动程序(AutoStart)是指在设备启动完成后自动运行的应用程序。这些程序通常用于提供一些持续的服务,如消息推送、后台同步或系统优化等。本Demo是针对Android开发人员设计的,目的是展示...
在Android应用开发中,程序启动界面(Splash Screen)通常是用户打开应用时首先看到的界面,它通常用于展示品牌标识、加载资源或者执行初始化操作。本文将深入探讨Android程序启动界面的源码实现,并分析相关文件...
在Android应用程序中,启动过程中的白屏或黑屏现象是非常常见的一个问题。这种现象通常发生在应用程序首次启动时,用户会看到一个短暂的空白屏幕,然后才是应用程序的主界面出现。这种情况会影响用户体验,让用户...
1. **安全性问题**:直接在应用程序中执行任意命令存在安全风险。开发人员应当确保只允许执行经过验证的命令,并且考虑限制命令的输入来源。 2. **性能考量**:频繁地使用`Runtime.exec()`方法可能会导致性能下降...
Android 系统启动流程主要包括以下几个步骤:电源按键按下、Bootloader 启动、Kernel 启动、init 启动、Zygote 启动、System Server 启动、应用程序启动等。其中,init 进程是 Android 系统启动的关键过程,负责初始...
综上所述,"Android APP 扫描二维码的java程序(android studio)"项目涵盖了Android应用开发中的多个关键点,包括相机访问、第三方库集成、UI设计、事件处理以及权限管理等,是一个实用且全面的二维码扫描解决方案。...
在Android系统中,开机自启动程序通常用于在设备启动完成后自动执行特定任务,例如同步数据、启动服务等。实现这一功能的关键在于使用BroadcastReceiver,它是一个Android组件,能够监听并响应系统广播事件,包括...
3. **开机启动**:在Android系统中,开机启动指的是应用程序在设备启动完成后自动运行。 实现步骤: 1. **创建新项目**:打开Delphi,选择"New Mobile Application",创建一个新的Android项目。 2. **添加权限**:...
在Android系统中,一个应用程序(App)启动另一个应用程序是通过Intent机制实现的。Intent是Android系统中的一个核心组件,它用于在组件之间传递消息,包括启动新的Activity、Service或者BroadcastReceiver。在这里...
这份"Android程序启动界面源码.rar"压缩包提供了一个用于参考学习的Android启动界面的源代码。下面我们将详细探讨Android启动界面的实现原理和相关知识点。 首先,Android启动界面主要由两部分组成:启动画面和主...
在Android平台上,应用程序通常需要在特定条件下自动启动,比如设备开机时。这通常是服务或广播接收器等组件的职责,它们能在系统启动完成后执行预定的任务。本示例将深入讲解如何实现一个Android程序开机自启动的...
Java虚拟机是Java程序执行的平台,它提供了“一次编写,到处运行”的特性。在桌面系统中,我们通常使用标准的Java虚拟机。然而,Android因其独特的操作系统需求,采用了自己的虚拟机实现。 **Dalvik虚拟机** ...
下面将详细介绍如何在Android程序中实现网页内启动客户端的功能。 一、Android Intent机制 在Android系统中,Intent是应用程序之间进行通信的重要桥梁。它可以用来启动一个新的Activity,启动或绑定Service,或者...
### Android启动过程详解 #### 一、概述 Android操作系统启动过程是一个复杂且精细的过程,它涉及到从硬件层面的初始化到最终用户界面的呈现。整个启动流程可以大致分为以下几个阶段: 1. **init进程启动** 2. **...
在 Android 模拟器中,QEMU 用于模拟 Android 设备的行为,并提供了一个虚拟机环境来运行 Android 应用程序。 要加速 Android 模拟器启动运行速度,需要解决以下几个问题: 1. 硬件加速:Android 模拟器可以使用...