新建一个jni的文件夹,放入http_client.c mongoose.c mongoose.h Android.mk文件,Android.mk文件内容如下:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_CFLAGS += -pie -fPIELOCAL_LDFLAGS += -pie -fPIELOCAL_MODULE    := mongooseLOCAL_SRC_FILES := http_client.c mongoose.cinclude $(BUILD_EXECUTABLE) #可执行文件
  • cd到该目录,执行ndk-build,会生成libs和obj两个文件夹,libs/armeabi/下会有可执行文件mongoose,将该文件push到手机的/data/local。
  • adb shell进入手机的/data/local目录,执行./mongoose即可。
  • 手机端访问127.0.0.1:8080即可访问到该网页

在Android 5.0及以后版本,若没有添加

LOCAL_CFLAGS += -pie -fPIELOCAL_LDFLAGS += -pie -fPIE

会出现如下错误:

error: only position independent executables (PIE) are supported.

这是因为,PIE这个安全机制从4.1引入,Android 5.0之前的系统版本并不会去检验可执行文件是否基于PIE编译出的,因此不会报错。但是Android 5.0以后已经开启验证,如果调用的可执行文件不是基于PIE方式编译的,则无法运行。解决办法非常简单,在Android.mk中加入上面两个FLAG即可。

java中调用mongoose的方法
1. Executing mongoose from the Java application using Runtime.getRuntime().exec call
2. Building a shared library and calling its functions using JNI.

更多相关文章

  1. android(9)(使用pull解析xml文件)
  2. Android开发_如何调用 浏览器访问网页和Html文件
  3. Android MediaPlayer 简单综合应用------列出sdcard里所有.mp3文
  4. Android的xml布局文件代码讲解(TextView控件)
  5. android(8)(获取手机系统内存和SD卡内存信息)
  6. Android 获取指定文件目录下的图片
  7. android的sdcard文件的读取和保存详细介绍
  8. 科幻世界iPhone、iPad、Android手机客户端再次升级
  9. 【so文件】添加第三方so文件

随机推荐

  1. Android(安卓)Studio 常见问题集锦
  2. Custom Dialog !自定义对话框
  3. android实现异步加载图片
  4. 安卓入门.控件样式
  5. Layout_weight的特性
  6. Android手机开发ubuntu系统中常用的搜索
  7. android检测网络连接状态示例讲解
  8. Android(安卓)Google Maps 完整实例分析
  9. Android(安卓)启动另外activity并返回结
  10. android中ViewPager 与fragment 的一个应