我有一个小型的律师应用程序,工作正常。但现在我想实施一些法院数据整合(在巴西)。
不幸的是,我们的法院不提供任何类型的API,因此我需要执行一些页面抓取以获取信息。
对于每个州,我需要开发一个不同的库,我希望开发单独的模块,以便用户只需要为他们所在的州安装模块。这样,如果一个法院改变,我可以更容易地发布更新网站布局,不影响其他用户。
即。用户下载主程序(所有用户都一样)。来自“里约热内卢”的用户仅下载“里约热内卢”的爬虫,“圣保罗”的用户也只下载“圣保罗”爬虫。
在Windows开发平台中,我会开发一些DLL并完成工作,但我不确切知道如何在Android中执行此操作。我知道我需要为每个州开发一个不同的“app”,但是如何检查安装了哪些模块以及最重要的如何调用模块函数?
所以我需要一些关于如何进行模块开发和与主应用程序集成的基本指导。
答案 0 :(得分:3)
对于每个州,我需要开发一个不同的库,我希望开发单独的模块,以便用户只需要为他们所在的州安装模块。
对于少数几个状态来说,这似乎是严重的过度杀伤,每个状态都需要少量的专用代码。
如何查看已安装的模块
使用PackageManager
。例如,您可以call getInstalledPackages()
并迭代它们,查找其包名称与某些预定义模式匹配的内容(例如com.klamarth.brcourt.state.*
)。
如何调用模块函数?
你不是。你的"模块"需要导出一些Android组件(例如,服务),然后您的主应用程序可以与该组件通信。哪个组件(活动,服务,内容提供商或广播接收者)取决于您正在做什么以及用户如何与之交互。