我们正在开展广告调解项目,该项目需要将任意数量的第三方库集成到更大的框架中。所有库都具有联系外部服务器并返回有效Android布局或失败的常见行为,但我们可以不假设或控制其内部功能。
从启动调用序列的框架/应用程序的角度来看,第三方库执行的服务器交互是不透明的。这可能允许任何库实现基于应用程序的权限访问和传输敏感信息。
目标是让调用进程能够在框架/应用程序级别上将集成库捕获的http请求传递到网络之前。理想的情况是处理和潜在阻止请求的能力。另一种方法是找到一种记录请求并为可操作分析提供反馈的方法。
我在文档或搜索论坛中找不到任何有用的东西。这在Android中是否可行?
答案 0 :(得分:0)
您可以考虑没有权限的第二个帮助应用程序,它将第三方库作为插件。您的主应用程序通过AIDL与您的帮助应用程序进行通信。第三方库只能提供像'load_ad https:// ...'这样的抽象命令。实际请求由您的主应用程序完成。作为AIDL的替代,第三方库可以广播他们的命令(参见BroadcastReceiver)。
第二个应用使用相同的android:sharedUserId并创建一个权限,该权限只能授予您的主应用。这样,帮助应用程序是主应用程序唯一可能的客户端。
答案 1 :(得分:0)
创建自定义URLStreamHandlerFactory和URLStreamHandler,并通过调用URL.setURLStreamHandlerFactory(this)从应用程序onCreate()设置它 它将允许捕获甚至由第三方库创建的所有网络流量。