1. 程式人生 > >Android-----打包可執行檔案並在apk呼叫

Android-----打包可執行檔案並在apk呼叫

1.首先交叉編譯可執行檔案hello

2.將hello放到assets下


3.舉例:

package com.test.android.exe;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

	private String exe_path = "data/data/com.test.android.exe/hello";
	private File exe_file;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		try {
			copyBigDataToSD(exe_path);
			exe_file = new File(exe_path);  
			exe_file.setExecutable(true, true); 
			execCmd(exe_path);
		} catch (IOException e1) {
			e1.printStackTrace();
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	

private void execCmd(String cmd) throws IOException {
    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec(cmd);
    InputStream is = process.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line = null;
    while (null != (line = br.readLine())) {
        Log.e("########", line);
    }     
    try {
        process.waitFor();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

}

private void copyBigDataToSD(String strOutFileName) throws IOException 
{  
    InputStream myInput;  
    OutputStream myOutput = new FileOutputStream(strOutFileName);  
    myInput = this.getAssets().open("hello");  
    byte[] buffer = new byte[1024];  
    int length = myInput.read(buffer);
    while(length > 0)
    {
        myOutput.write(buffer, 0, length); 
        length = myInput.read(buffer);
    }
	    myOutput.flush();  
	    myInput.close();  
	    myOutput.close();        
	}
}

4.效果:


相關推薦

Android-----打包執行檔案apk呼叫

1.首先交叉編譯可執行檔案hello 2.將hello放到assets下 3.舉例: package com.test.android.exe; import java.io.BufferedReader; import java.io.File; import

在一個Android專案裡面有兩個執行檔案,如何實現呼叫方式

我的處理方式是: 用Intent+AndroidManifest.xml的方法: 此方法是用Intent和修改AndroidManifest.xml達成的。 就是在要引用的AndroidManifest.xml檔案裡面加入被引用那個專案的activity: <activity

強悍!winrar妙用-將bat指令碼打包成exe執行檔案實現自動執行

轉自:https://blog.csdn.net/qq_35440678/article/details/53264410   一、背景介紹 最近有個這樣的需求,為了網頁解決IE相容問題,需實現自動檢測到使用IE開啟時下載一個離線chrome安裝包,用一個bat指令碼啟動離線的

Qt學習筆記之——生成exe執行檔案打包生成安裝軟體

之前用MFC生成過安裝檔案,今天想嘗試採用Qt生成的exe檔案打包並生成安裝軟體。 開始我認為比較簡單,但是嘗試過程中遇到了很多問題。下面一一列出來 首先:我認為,要完成一個軟體,應儘可能的使用Release版本檔案,當然了,可以現在Debug版本下除錯通過再進行測試 打包

解決pyinstaller打包執行檔案,存放路徑包含中文無法執行的問題

一、實驗環境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda整合,不需單獨安裝) 3.pyinstaller3.0 二、問題描述 1.使用如上環境,pyinstaller打包生成的exe檔案,存放在本地,如果路徑中包含中文,程式無法執行;

用python將圖片切分為九宮格 打包成exe執行檔案

前言經常在朋友圈或者微博看到九宮格顯示的圖片,雖然是九張圖片,但是這是一張圖片經過切割而成的,顯示效果很震撼。今天,我們就用python將圖片切分為九宮格,並打包成exe可執行檔案,就算不需要程式碼也可以輕鬆實現。效果微信切圖前後的對比圖:微博的切圖前後的對比圖:準備匯入需要

基於Python3.6寫的自助翻譯小軟體--使用google translate的介面,Python實現爬取google翻譯API結果,打包成.exe的執行檔案

看文獻看的頭疼,為了解決小麻煩沒事就寫了這個來玩一玩。其實也沒有什麼就是用一個簡單的爬蟲和介面,所以啥也不多說,直接貼程式碼,歡迎嘗試# -*- coding: utf-8 -*- # filename:GoogleTranslation1.2.py import urll

經驗總結---編譯出可以在Android執行執行檔案

作為一手包攬Ubuntu和Android裝置的初級開發者,我不止一次地嘗試把這兩個同是用Linux核心的作業系統統一起來——讓Ubuntu下的可執行程式能夠在Android裝置上執行。於是我不止一次地嘗試,不止一次地查詢資料,終於如願以償。 我把我的經驗在這裡與大家分享。 準備工具 【宿

python 打包成exe執行檔案

這是我的python版本,親測可用 據說python3 直接用pyInstaller就能打包,畢竟py2exe太過陳舊了。 通過pip安裝了 Pyinstaller3.1 dos命令下 直接寫 pip install Pyinstaller,回車 等待即可,然後你可

用Pyinstaller把Python3.7程式打包執行檔案exe

1、通過pip3 install pyinstaller 安裝成功 2、然後執行命令,首先:需要切換到程式所在的目錄 執行命令 pyinstaller -F -w <檔名.py>,-F代表生成可執行檔案,-w代表需要控制檯,不需要就不用加。 3、等執行結束後,會在程式所在的資料夾生成三個資料

用Pyinstaller把Python3程式打包執行檔案exe

自己開發一些小工具,但是又懶得去配置環境,索性想著把py程式碼編譯可執行檔案exe 百度了很多,發現了很多牛人的無私奉獻,在此也分享下自己的心得體會。 Windows7 64位作業系統 Python3.3 32位 首先安裝PIP。 pip 是一個安裝Python包的工具

myeclipse將javaswing程式打包執行檔案

上次打包過一次了,最近需要將swing程式打包成exe檔案,但是卻忘記了,為了防止再忘記,寫下這篇文章 第一步:新建一個資料夾,裡面放你專案需要的jib ,圖片,和一個jre(我的jre是1.7的) 第二步:開啟myeclipse 在剛新建的

python程式打包成exe執行檔案

1.安裝pyinstaller模組: 2.驗證安裝成功pyinstaler,該步驟只是為了心理安慰: 3.將自己的python檔案打包成exe: 輸入命令:pyinstaller  -F    **\**\**.py,如圖裡標黃所示,-F 後面內容為你想打包

002-【最簡單】Electron 怎麼將網頁打包成桌面應用(web前端頁面怎麼生成exe執行檔案

在 HTML5的崛起、JavaScript要一統天下之際,有一個名為【跨平臺】的技術越來越火。為什麼會這麼火?因為軟體開發者

【最簡單】Electron 怎麼將網頁打包成桌面應用(web前端頁面怎麼生成exe執行檔案

在 HTML5的崛起、JavaScript要一統天下之際,有一個名為【跨平臺】的技術越來越火。為什麼會這麼火?因為軟體開發者只需一次編寫程式,即可在 Windows、Linux、Mac、IOS、

Spring Boot Maven 打包執行Jar檔案

Maven pom.xml 必須包含<packaging>jar</packaging> <build> <plugins> <plugin> <groupId>org.sprin

Spring Boot打包執行的jar或者war檔案

首先pom檔案中包含有spring-boot-maven-plugin: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM

如何將Java程式打包成exe執行檔案

步驟 第一步:將Java程式通過Eclipse或者JRE匯出成Jar包; 第二步:通過exe4j將Jar包程式生成exe可執行檔案。 解決java檔案編譯為class檔案時提示:“錯誤:編碼GBK

Tcl/tk例項—使用tclkit工具將指令碼打包執行檔案(.exe)

下載 tclkit.exe 工具,及 sdx.kit 檔案。 複製一份tclkit.exe ,命名為tclkit2.exe。 假設你的指令碼檔案為:app.tcl Step1: 命令列執行 tclkit.exe sdx.kit qwrap app.tcl 執

c#程式打包執行檔案

經過朋友(lcm)的耐心指導,輕鬆完成了c#程式的打包,希望能夠幫助更多的戰友輕鬆打包c#。 一:前期準備工作 使用《innosetup_5.5.9》工具實現c#程式打包,程式下載地址:   htt