登录 立即注册
安币:
查看: 94|回复: 5
打印 上一主题 下一主题

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

[复制链接]

343

主题

400

帖子

1730

安币

手工艺人

跳转到指定楼层
楼主
发表于 2018-2-9 14:41:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文来源:http://www.oneupabq.com/a/www.xmtnews.com/

重庆时时彩独胆倍投 www.oneupabq.com,但是就算是端茶送水的琐碎,说真的,请再好再贵的月嫂都不如自己的妈照顾周到。面对公和私、义和利、是和非、正和邪、苦和乐的矛盾,是选择前者还是后者,靠的就是觉悟,最终检验的是对党和人民的忠诚。


            

        最近在将 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>#endifintmain (int argc, char *argv[]){ ...}#if defined(android)static void *thread_handler (void *data){ main (0, null); return null;}jintjni_onload (javavm *vm, void *reserved){ pthread_t thread; pthread_create (&thread, null, thread_handler, null); return jni_version_1_4;}#endif

        android 服务

        服务主要是加载 jni 接口的 hev-socks5-client 库,使服务跑起来。复制代码 代码如下:package hev.socks5;import android.app.service;import android.content.intent;import android.os.ibinder;import android.util.log;public class mainservice extends service { static { system.loadlibrary("hev-socks5-client"); } public ibinder onbind(intent intent) { return null; }}

        broadcastreceiver

        servicereceiver 的功能就是监听系统上的 boot_completed 事件,用于实现自动启动服务。复制代码 代码如下:package hev.socks5;import android.content.broadcastreceiver;import android.content.context;import android.content.intent;public class servicereceiver extends broadcastreceiver { @override public void onreceive(context context, intent intent) { if (intent.getaction().equals(intent.action_boot_completed)) { intent i = new intent(context, mainservice.class); context.startservice(i); } }}

        androidmanifest.xml

        最后,要在 manifest 中注册 service 和 receiver,增加上访问 internet 和 boot completed 的权限。复制代码 代码如下:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="hev.socks5" android:versioncode="1" android:versionname="1.0"> <application android:label="@string/app_name" > <service android:name=".mainservice"> <intent-filter> <action android:name="hev.socks5.mainservice" /> </intent-filter> </service> <receiver android:enabled="true" android:name=".servicereceiver"> <intent-filter> <action android:name="android.intent.action.boot_completed" /> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.receive_boot_completed" /></manifest>

        tips



        
分享到:  QQ好友和群 QQ空间 微信
收藏收藏 支持支持 反对反对

0

主题

8797

帖子

2999

安币

Android大神

Rank: 6Rank: 6

沙发
发表于 2018-2-11 05:13:41 | 只看该作者
感谢分享,楼主V5~

6

主题

8977

帖子

3000

安币

码皇(巴士元老)

Rank: 8Rank: 8

板凳
发表于 2018-2-12 05:05:08 | 只看该作者
感谢分享,安卓巴士有你更精彩:lol

17

主题

8703

帖子

2447

安币

Android大神

Rank: 6Rank: 6

地板
发表于 7 天前 | 只看该作者
楼主是好人,回个帖会有安币吗?

499

主题

576

帖子

3103

安币

手工艺人

5#
发表于 7 天前 | 只看该作者
感谢分享,楼主V5~

85

主题

9231

帖子

2286

安币

Android大神

Rank: 6Rank: 6

感谢分享,安卓巴士有你更精彩:lol
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 下载客户端|申请友链|手机版|站点统计|重庆时时彩独胆倍投 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说