上一篇文章说了Googel Search Widget在不同的版本是在不同ap里面实现的,那今天就代码来分析一下:
1,在android 1.5上 Google Search 确切地说不是一个真正的Android 的widget, 因为它不是通过android.appwidget.action.APPWIDGET_UPDATE 和android.appwidget.provider来配置的,而只是Launcher 里面通过workspace主动加载它而已,他的主要相关的代码是Search.java.看看Launcher是如何加载它的:
LauncherProvider.java:
if (TAG_SEARCH.equals(name)) {
added = addSearchWidget(db, values);
} 这一行
2,在android 2.2的上,Google Search Widget是一个真正的widget,它通过android.appwidget.action.APPWIDGET_UPDATE 和android.appwidget.provider来配置的,其主要代码是SearchWidgetProvider.java。那我们看看Launcher是如何加载它的:
LauncherProvider.java:
if (TAG_SEARCH.equals(name)) {
added = addSearchWidget(db, values);
}这一行
从代码就可以看得出android1.5和android 2.2的区别了。不过共同点就是在default_workspace.xml都是用search tag来定义Google search widget.
<search
launcher:screen="2"
launcher:x="0"
launcher:y="0" />
3,通过上面我们也知道Launcher 加载default 的ap或者widget是通过default_workspace.xml定义,然后通过LauncherProvider中的loadFavorites的函数来解析这个xml.