Http远程控制App
最近有项目需求通过远程http来控制android app,首先需要在app中内嵌http服务,开始考虑用jetty,后来发现有更加轻量级的NanoHttpd组件,GitHub地址:https://github.com/NanoHttpd/nanohttpd
用起来比较轻便,最终通过在启动app时启动一个Service 实例化NanoHttpd ,在开发中遇到一个问题就是App有多个Activity, Service 调用Activity 中的方法,可能大家想到最简单的做法是通过广播来实现,因为 Service和Activity属于两个进程,在android中最简单的进程调用就是通过广播来实现。

但是有个问题就是广播延迟比较严重,为了解决延迟问题。最终选择了通过两个AIDL 接口来实现,用一个AIDL作另一个的会调接口。具体做法如下:
IClientCallBack.aidl

// IClientCallBack.aidl
package com.test.application;// Declare any non-default types here with import statementsinterface IClientCallBack {/*** Demonstrates some basic types that you can use as parameters* and return values in AIDL.*/int getResult(String action);
}

IGetData.aidl

// IGetData.aidl
package com.test.application;
import com.test.application.IClientCallBack;// Declare any non-default types here with import statementsinterface IGetData {/*** Demonstrates some basic types that you can use as parameters* and return values in AIDL.*/void register(IClientCallBack callback);
}

MainService .java

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.annotation.Nullable;
import com.test.application.IClientCallBack;
import com.test.application.IGetData;import java.io.IOException;/*** MainService.*/
public class MainService extends Service{MainService mainService;/*** HttpServer.*/public static HttpServer mHttpServer = null;public static IClientCallBack callBack;@Nullable@Overridepublic IBinder onBind(final Intent intent) {return mBinder;}@Overridepublic boolean onUnbind(Intent intent) {return super.onUnbind(intent);}@Overridepublic void onCreate() {}@Overridepublic void onDestroy() {}/** MsgBinder.*/public class MsgBinder extends Binder {/*** Service.* @return Service*/public MainService getService() {return MainService.this;}}IGetData.Stub  mBinder= new IGetData.Stub(){@Overridepublic void register(IClientCallBack mcallback) throws RemoteException {callBack = mcallback;mHttpServer.setCallBack(callBack);}};}

Http远程控制App相关推荐

  1. 一个又离不开的软件:图形化远程控制APP向日葵

    文章目录 图形化远程控制软件:向日葵 1. 基本介绍: 1.1 使用平台 1.2 最重要的四项功能(免费) 2. 操作示例:win10远程控制Ubuntu18.04 2.1 下载软件并注册用户 2.2 ...

  2. 安卓手机远程控制app

    用一台安卓手机完全控制另外一台安卓手机,想一想是不是很酷炫,那么今天他来了 安卓手机远程控制app下载地址58588.goho.co

  3. 0代码定制物联网远程控制APP——物联网平台ThingsCloud简单入门

    ThingsCloud与阿里云物联网平台类似,比较重要的特点是可以按照自己的设备实际情况和需求0代码定制APP,包括安卓.IOS以及微信小程序等,对需要做课程设计或者想浅尝远程控制的同学非常友好. 可 ...

  4. fusion app 网页远程控制app

    拥有此网页,即可.远程控制软件里面的公告更新以及其他内容. 网页并无联系方式,请自己摸索. 从此即可摆脱, QQ收藏,微云,讯飞语记的束缚! 使用本程序网站放再多的内容都不会乱码! FA2和1都可以使 ...

  5. 水贝风机远程控制app

  6. Windows远程控制家里的电脑

    一.需要的设备 硬件 一台电脑(被控制) 另一个电脑或手机(控制端) 家用路由器(可选) 软件 远程桌面连接(Windows自带) microsoft Remote Desktop(又称RD Clie ...

  7. ToDesk远程控制

    实现远程控制有多简单? https://www.todesk.com/download.htmlhttps://www.todesk.com/download.htmlhttps://www.tode ...

  8. 远程控制向日葵下载与使用(巨细节)

    1.向日葵简介 此篇博文写的很好,可直接查看向日葵远程控制 简单说向日葵的作用是:远程控制另一台电脑 2.下载 1.进入官网,点击下载向日葵远程控制app 补充:查看电脑位数 右键"这台电脑 ...

  9. ccxprocess用不用自启_远程开机加远程控制,游戏玩家用这款智能插座超实用

    我很早就开始接触智能插座了,记得我手里第一款支持APP控制的插座是网上众筹,不过没多久这家公司倒闭了,插座的远程功能也停止维护了:后来家里折腾智能家居,就开始用米家的智能插座,感觉确实很方便.去年魔兽 ...

最新文章

  1. 一致性哈希算法及其在分布式系统中的应用
  2. CCF 202104-4 校门外的树 Python
  3. anaconda和vscode配置python_vscode配置anaconda3的方法步骤
  4. Oracle---对字段进行修改(varchar2修改clob)+ 索引失效
  5. Ollydbg使用教程学习总结(三)
  6. hexo部署成功但是没效果_使用 Hexo+GitHub 搭建个人免费博客教程(小白向)
  7. 深度神经网络移动终端GPU加速实践
  8. 新员工入职表_入职培训流程,五大步骤让员工顺利上岗,来之能战战之能胜
  9. php.ini $ phphome,shell 脚本安装PHP扩展的简单方法
  10. [转载] Numpy数组对象ndarray
  11. jQuery-EasyUI
  12. 什么是Redis?什么是nosql?NoSQL数据库的四大分类
  13. linux下文件去重
  14. 华为云PBX_基于华为云客服平台打造的比特百灵鸟AI管家解决方案发布
  15. 好用的计算属性clac
  16. android刷脸支付宝,安卓手机可以支付宝刷脸吗 刷脸登陆安卓机能用吗
  17. uniapp—— 微信小程序ios上音频播放没有声音
  18. java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署
  19. 博弈论与信息经济学-重复博弈
  20. 【线代】 线性方程组的解

热门文章

  1. MATLAB Robotics Toolbox常用函数简介
  2. 基于面部视频的心率监测系统 day 10
  3. 关于学的计算机句子,赞美计算机唯美句子41条
  4. 如何使用WPS从正文开始页码为1,而不是从目录开始?
  5. SpringBoot banner图样
  6. echarts绘制3D旋转地球
  7. Jenkins系列之——第一章 Jenkins下载及安装
  8. 查看 namespace 下面所有的资源并删除
  9. linux查看sriov端口,sriov查看pf-vf对应关系
  10. 事物以及事物隔离性的代码详解