adaway的jni单从文件夹名来说,分为blankwebserver,dnsmasq,libpcap,tcpdump四个部分。

应该和协议相关的很紧密。这几天一点一点看看这些都是什么吧。

一.mongoose是blankwebserver的核心,貌似此模块是在后台启动一个空server,通过callback来回馈其想要的信息。具体还待进一步验证。

blank_webserver.c描述了adway最想这个模块做的事情。

其流程为:

首先检查是否已经存在一个后台进程,如果有,则进行下一步;没有则获取新的fork,建立新进程,即后台进程;

然后通过mongoose特有的mg_start方法启动对127.0.0.1:80,127.0.0.1:443端口的监听;其返回结构体mg_context *ctx

未收到退出标志位时一直监听。

直至标志位改变,mg_stop(ctx)来结束blank webserver的使命。

二.开始看到dnsmasq,libpcap,tcpdump觉得很深奥,不知道什么时候才能弄清楚。现在才知道,其是,就是单纯地源码编译出相应的库,然后androd的java程序中调用。从Application.mk可以看出其用途。

libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。这里引入它主要是为了tcpdump的编译。

adaway的jni设计摸索相关推荐

  1. Android Jni 调用

    Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 Chap 3:javah命令帮助信息... 16 Chap 4:用javah产生一个.h文件... 17 Chap5:j ...

  2. Android JNI --函数调用大全

    Chap1:JNI完全手册 最近在公司里做了一个手机的项目,需要JAVA程序在发送短信的时候和第三方的短信服务器连接.短信接口是用C++ 写的.琢磨了三天,大致搞懂了JNI的主体部分.先将心得整理,希 ...

  3. android中JNI知识(很全)

    Chap1:JNI完全手册 最近在公司里做了一个手机的项目,需要JAVA程序在发送短信的时候和第三方的短信服务器连接.短信接口是用C++写的.琢磨了三天,大致搞懂了JNI的主体部分.先将心得整理,希望 ...

  4. 【Android】JNI调用(完整版)

    原文出处:http://blog.csdn.net/kangyaping/article/details/6584027#t0 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... ...

  5. JNI详解---从不懂到理解

     Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 Chap 3:javah命令帮助信息... 16 Chap 4:用javah产生一个.h文件... 17 Chap ...

  6. ext列表禁止滑动_后台列表设计避坑指南(下)

    编辑导语:列表页是后台界面的重要组成之一,上篇说了后台列表设计的"搜索"设计(详情见:后台列表设计避坑指南 上):本篇继续讲剩下的两个部分的"坑"和必坑指南,我 ...

  7. ui设计培训课程是哪些

    ui设计全称叫做use interface,直接翻译成中文就是用户界面,ui设计师的日常职责是就软件做人机交互.界面美观度做调整优化,整体式设计,ui设计师需要掌握的内容不少,如要弄懂软件.要学习专业 ...

  8. MiniJavaVM——一个Java虚拟机的设计和实现

    http://ba5ag.zrsa.org/paper/ZhuHuaiyi.html MiniJavaVM--一个Java虚拟机的设计和实现 摘要 本文叙述了Java虚拟机(JVM)的概念及如何设计和 ...

  9. JNI官方规范中文版

    JNI官方规范中文版 转载自:http://www.360doc.com/content/13/1014/23/14233282_321497569.shtml jni虚拟机java多线程jvmsun ...

  10. JNI_编程技术__网文整理

    Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 Chap 3:javah命令帮助信息... 16 Chap 4:用javah产生一个.h文件... 17 Chap5:j ...

最新文章

  1. 鸟哥的Linux私房菜(基础篇)-第零章、计算机概论(零.1)
  2. webapi同一个Controller多个函数
  3. 【译】为什么我更喜欢对象而不是switch语句
  4. normandie出错重试与缓存机制对交互的影响,开发者注意
  5. 【算法】背包问题C++
  6. 进程标识符及fork
  7. 前段基础html常用标签,web前端开发网络课程,HTML常用的五种标签
  8. visifire3.6.8 去水印方法
  9. 搭配实例的常见cmd命令+最简单bat病毒编写
  10. C语言 大赛现场统分
  11. 个人免签支付如何对接微信支付宝?
  12. 微信小程序云开发CMS中WebHook功能的使用方法
  13. 从初级程序员到CEO,汤鹏与时代碰撞出的那些“火花”
  14. 新手使用微信引流脚本,这两点你一定不能忽视
  15. 如何设置和取消RAR文件的密码保护
  16. 〖ChatGPT实践指南 - 零基础扫盲篇②〗- 深度体验 ChatGPT
  17. 使用NtUserBuildHwndList遍历窗口_win7x64
  18. 百度知道负面信息怎么删除
  19. 【markdown】markdown语法
  20. 基于Halcon提取图像外轮廓并提取保存轮廓相关数据

热门文章

  1. Floor报错注入原理解析心得
  2. 类与对象的属性与应用
  3. OpenAI:基于对比学习的无监督预训练
  4. 对比excel 轻松学python百度云_解读《对比Excel轻松学习Python数据分析》
  5. 读书笔记 - 《移山之道:VSTS软件开发指南》中的软件测试介绍
  6. SQL求同比增长率(系列1)
  7. matlab中isequal函数,MATLAB中的isequal函数的用法
  8. 微信图文排版指南-如何在图片上添加文字?
  9. Javascript面试题 把AaaBbbcccc 变成AaaBbbCcc
  10. 老徐WEB:js入门学习 - javascript函数和闭包