Android中实现开机自动启动服务(service)实例

最近在将 HevSocks5Client 移植到 Android 上了,在经过增加 signalfd 和 timerfd 相关的系统调用支持后,就可以直接使用 NDK 编译出 executable 了。直接的 native exectuable 在 Android 系统总还是不太方便用哦。还是做成一个 apk 吧,暂定只写一个 service 并开机自动启用,无 activity 的。

Java 中调用 native 程序我选择使用 JNI 方式,直接在 JNI_OnLoad 方法中调用 pthread_create 创建个线程跑原来的 main 就行啦。

... #if defined(ANDROID) #include <jni.h> #include <pthread.h> #endif int main (int argc, char *argv[]) { ... } #if defined(ANDROID) static void * thread_handler (void *data) { main (0, NULL); return NULL; } jint JNI_OnLoad (JavaVM *vm, void *reserved) { pthread_t thread; pthread_create (&thread, NULL, thread_handler, NULL); return JNI_VERSION_1_4; } #endif

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwsfg.html