android开发 如何调用SO
java
package com.example.callsodemo; import android.R.integer;
import android.R.string;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem; public class MainActivity extends ActionBarActivity {
public native int Add(int x, int y); public native void WriteLog(String str); static {
// 加载动态库
System.loadLibrary("zhentry");
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); int i = Add(5, 8);
WriteLog("14521452");
int j = i;
}
c
#include <stdio.h>
#include <time.h>
#include <pthread.h>
#include <jni.h> JNIEXPORT jint JNICALL Java_com_example_callsodemo_MainActivity_Add(JNIEnv *env, jobject obj,
jint x, jint y) { return x+y;
}
JNIEXPORT void JNICALL Java_com_example_callsodemo_MainActivity_WriteLog(JNIEnv *env, jobject obj, jstring prompt) { //int d = system("touch /sdcard/zhang.txt");
//int d = system("/data/local/tmp/screencap -p /sdcard/zzz.png");
char *args[] = {"sh","-c","/data/local/tmp/screencap -p /sdcard/zzz.png",NULL};
execv("/system/bin/sh",args);
int d=;
//int e = seteuid(2000);
//int d = getuid();
char *str = (*env)->GetStringUTFChars(env, prompt, );
FILE *stream;
stream = fopen("/sdcard/zhentry.log", "a+,ccs=utf-8");
fprintf(stream, "%s|%d\n", str,d);
fclose(stream);
}
注意:
1 C中函数的命名
2 C中使用JAVA参数时需要转型,如char *str = (*env)->GetStringUTFChars(env, prompt, 0);
android开发 如何调用SO的更多相关文章
- android开发中调用python代码(带参数)
android开发主要用到的是java代码,但是当开发涉及到一些算法时,往往用python可以提高软件的运行速度,也更加便捷,这里分享自己项目调用python代码的方式,主要有以下几个步骤(个人方法, ...
- Android 开发--CMakeList调用本地so文件
这里写代码片Android开发常常遇到Java调用so文件的情况,本文介绍一下Google最近新推出的应用在android studio中的方法–cmakelist.txt格式调用. so文件分为jn ...
- 在Android开发中调用Rest web服务(转)
首先从维基百科上拷贝一点Rest的基本概念给大家看看,然后我们再开始详解在Android中如何调用Rest服务.表象化状态转变(英文:Representational State Transfer,简 ...
- Android 开发笔记“调用.net webservice遇到的问题”
1.An exception occurred: org.ksoap2.SoapFault SoapFault - faultcode: 'soap:Server' faultstring: '服务器 ...
- ArcGIS Runtime SDK for Android开发之调用GP服务(异步调用)
一.背景说明 通过调用GP服务,Android客户端也能实现专业的.复杂的GIS分析处理功能,从而增加应用的实用价值. ArcGIS Server发布的GP服务,分为同步和异步两种类型,一般执行步骤较 ...
- Android 开发笔记 “调用WebService”
WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台.不同语言.不同技术整合到一块.在Android SDK中并没有提供调用WebService的库 ...
- Android开发 互相调用模式之导出Jar包、扩展MainActivity、Java主导
首先讲导出Jar包,在以前都是用这种方法,但是现在官方不推荐使用此方法,官方推荐导出Aar包 (1)首先创建一个Android空工程 注意:这里选择API 16,因为Unity支持的最低是API 16 ...
- Android开发 互相调用模式之提供扩展类
此种方法适用于:比如你要让Android做一些事情,这些事用不到任何资源,在Android下用纯代码就能实现它,这样就可以在Android下写好,将它封装成一个方法,打成包按照下面的方式丢给Unity ...
- Android开发 互相调用模式之C#主导
首先明确一个概念,当我们不使用Android Studio提供的那些包,仅仅是Unity打包apk,打包出来的apk里面也包含了SDK (1)首先删除Unity下我们创建的Plugins文件夹,因为这 ...
- Android开发 输入法调用学习
方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示) InputMethodManager imm = (InputMethodManager) getSystemService(Context. ...
随机推荐
- 在 Mac OS X Yosemite 10.10.5 上配置 OpenGL 编程环境
这个教程主要参考了youtube上的视频 Getting Started in OpenGL with GLFW/GLEW in Xcode 6 ,这个视频有点问题,不能照搬.本人通过自己摸(瞎)索( ...
- Erlang 102 Erlang并发编程
笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期 变更说明 2014-11-02 A outline 2014 ...
- tf.slice可以用于矩阵也就是图片的切割
第一个向量表示切割的起点,第二个向量表示矩形框的大小,-1表示取该元素的最大值
- linux平台编译安装Poco C++
1.到官网下载poco-1.4.6p4-all.tar.gz,地址为http://pocoproject.org/download/index.html 2.同时下载说明文档 3.根据说明文档执行安装 ...
- POJ 2481 Cows(树状数组)
Cows Time Limit: 3000MS Memory L ...
- HTML中的按钮
html中的五种按钮 (1)<button></button> 表单外调用一个js文件时使用 (2)<input type="button" valu ...
- 论文笔记之: Hierarchical Convolutional Features for Visual Tracking
Hierarchical Convolutional Features for Visual Tracking ICCV 2015 摘要:跟卢湖川的那个文章一样,本文也是利用深度学习各个 layer ...
- eclipse导入github项目
以jeesite为例, github上面的项目大都是基于git方式进行版本控制以及使用maven构建的项目. 1 使用时,需先用eclipse的以git方式从github上下载代码. 下载后得到mav ...
- ubuntu14升级到15后遇到的问题
ubuntu14的unity坏了,于是就找了个镜像升级到15.但是升级完android开发环境出了点问题.. 1:Picked up JAVA_TOOL_OPTIONS: -javaagent:/us ...
- 动画_ _ Android应用开发之所有动画使用详解
转载: http://blog.csdn.net/yanbober/article/details/46481171 题外话:有段时间没有更新博客了,这篇文章也是之前写了一半一直放在草稿箱,今天抽空把 ...