Java 如何调试Android';将WIFI服务操作降低到驾驶员级别?
我需要了解一条消息是如何从服务级别到驱动程序调用遍历Android系统的 我已经决定从WiFi开始,尽管我目前的硬件平台——一个带有TI Rowboat(Android 4.2.2)的Beaglebone黑板——没有WiFi功能 我的计划是向源代码插入日志函数调用,并通过am程序向WifiService发送意图,以便触发发送给驱动程序的消息 在init.rc中,我发现ServiceManager是通过以下代码启动的Java 如何调试Android';将WIFI服务操作降低到驾驶员级别?,java,android,c++,c,wifi,Java,Android,C++,C,Wifi,我需要了解一条消息是如何从服务级别到驱动程序调用遍历Android系统的 我已经决定从WiFi开始,尽管我目前的硬件平台——一个带有TI Rowboat(Android 4.2.2)的Beaglebone黑板——没有WiFi功能 我的计划是向源代码插入日志函数调用,并通过am程序向WifiService发送意图,以便触发发送给驱动程序的消息 在init.rc中,我发现ServiceManager是通过以下代码启动的 service servicemanager /system/bin/servi
service servicemanager /system/bin/servicemanager
class core
user system
group system
critical
onrestart restart zygote
onrestart restart media
onrestart restart surfaceflinger
onrestart restart drm
此外,从frameworks/base/services/java/com/android/server/SystemServer.java中,我找到了这个代码片段
try {
Slog.i(TAG, "Wi-Fi Service");
wifi = new WifiService(context);
ServiceManager.addService(Context.WIFI_SERVICE, wifi);
} catch (Throwable e) {
reportWtf("starting Wi-Fi Service", e);
}
我相信这会启动WifiService
但是,我无法确定SystemServer是如何启动的
除此之外,我还在frameworks/base/wifi/java/android/net/wifi/WifiManager.java中插入了一个日志函数,如下所示
public WifiManager(Context context, IWifiManager service) {
mContext = context;
mService = service;
Log.i(TAG, "WiFiManager Created. Calling init()"); // inserted log
init();
}
通过使用logcat-s WifiManager
,我可以看到它在工作,这会导致
I/WifiManager( 317): WiFiManager Created. Calling init()
I/WifiManager( 396): WiFiManager Created. Calling init()
I/WifiManager( 968): WiFiManager Created. Calling init()
然而,我无法确定为什么会呼叫3次或呼叫来自何处
至于C代码,我希望使用dmesg
查看它的日志消息
我配置了cscope和ctag来浏览代码,但我无法找到WifiService或WifiManager下面的内容
看来我还有很长的路要走,所以非常感谢您的帮助。本演示的幻灯片8可能会回答您的几个问题
WifiService和WifiController的源代码可能也会有所帮助,您可以在
frameworks/base/services/java/com/android/server/wifi
中找到它们。另外,请查看其中的README.txt
。这可能从理论上回答了这个问题,但最好将答案的基本部分包含在此处,供未来用户使用,并提供链接供参考。通过@Mogsdad可能会变得无效。我很清楚,也很想这样做,但我不允许包含图像:(也许你可以这样做?URL是否完成了…但你仍然可以提供文字来解释与问题的相关性。谢谢,@aaahaap。我的研究是基于“马拉卡纳”的幻灯片。因为已经一年了,我记不起我是否能找到所有的电话。如果我找到我自己的幻灯片,我会把它们张贴在这里。非常感谢!