更改浏览器设置中的搜索引擎
1. 需求
将浏览器设置中的搜索引擎更改为XXXX,
谷歌搜索,百度搜索。默认
XXXX
选中。
2. 分析源码
我们先找到浏览器的设置界面代码, com.android.browser.BrowserPreferencesPage.java
构造界面部分代码在
onCreate
函数中
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the XML preferences file
addPreferencesFromResource(R.xml.browser_preferences);
这里我们看到它是通过xml
配置文件来构造界面的,这个文件存放在工程下的
res/xml/browser_preferences.xml
。里面对于
search engine
是这样定义的:
<com.android.browser.search.SearchEnginePreference
android:key="search_engine"
android:title="@string/pref_content_search_engine"
android:defaultValue="google"
android:summary="@string/pref_content_search_engine_summary"
android:dialogTitle="@string/pref_content_search_engine" />
我们继续顺藤摸瓜,找到SearchEnginePreference.java
这里面对于
search engin
又是通过
SearchEngines
类静态方法
getSearchEngineInfos
来获取的,这个方法实现如下代码:
public static List<SearchEngineInfo> getSearchEngineInfos(Context context) {
ArrayList<SearchEngineInfo> searchEngineInfos = new ArrayList<SearchEngineInfo>();
Resources res = context.getResources();
String[] searchEngines = res.getStringArray(R.array.search_engines);
for (int i = 0; i < searchEngines.length; i++) {
String name = searchEngines[i];
SearchEngineInfo info = new SearchEngineInfo(context, name);
searchEngineInfos.add(info);
}
return searchEngineInfos;
}
看到R.array.search_engines
我们就找到配置搜索引擎的数据源头了,在
res/values/donottranslate-search_engines.xml
中。 定义如下:
<!--
****
**** THIS FILE WAS GENERATED BY tools/get_search_engines.py
****
Each value in the string-array is the name of a value in all_search_engines.xml
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="search_engines" translatable="false">
<item>google</item>
<item>baidu</item>
<item>Yahoo</item>
</string-array>
</resources>
注释中已经提醒我们,这里的item
只是一个引用,真正的定义在
all_search_engines.xml
中。这样也是方便不同区域语言下的搜索引擎管理。集中到一个文件中定义,避免不必要的重复数据。
3. 修改
这下都搞清楚了就好修改了。首先在all_search_engines.xml
中添加对
XXX
搜索引擎的定义,然后修改
donottranslate-search_engines.xml
中的
item.
在实际操作中有几点还有说明下。
以Yahoo_uk
为例
<string-array name="yahoo_uk" translatable="false">
<item>Yahoo! UK & Ireland</item>
<item>uk.yahoo.com</item>
<item>http://uk.search.yahoo.com/favicon.ico</item>
<item>http://uk.search.yahoo.com/search?ei={inputEncoding}&fr=crmas&p={searchTerms}</item>
<item>UTF-8</item>
<item>http://uk-sayt.ff.search.yahoo.com/gossip-uk-sayt?output=fxjson&command={searchTerms}</item>
</string-array>
每个searchEngine
都定义了
6
个
<item>
从上到下依次表示显示标签,关键字,搜索图标,搜索引擎地址,编码方式,搜索提示地址。 这些值因区域语言不同而不同。所以对不同的区域可能需要定义不同的搜索引擎。我们这里需要添加一个支持中国地区的
xxx
定义就可以了。
<string-array name="xxxx" translatable="true">
<item>@string/xxxx_str</item>
<item>xxx.xxx.com</item>
<item>http://xxx.xxx.com/favicon.ico</item>
<item>http:// xxx.xxx.com/search?ei={inputEncoding}&fr=crmas&p={searchTerms}</item>
<item>GB2312</item>
<item></item>
</string-array>
分享到:
相关推荐
尽管没有具体的数据说明V8 JavaScript引擎对JavaScript标准的具体支持程度及其性能表现,但考虑到Chrome浏览器同样采用了V8引擎,并且在多种基准测试中表现出色,可以推测Android浏览器在这方面也有着不错的表现。...
**Android平台上简单网页浏览器开发详解** 在Android平台上开发一款简单的网页浏览器是许多初学...随着技能的提升,你可以尝试添加更多高级功能,如书签管理、夜间模式、自定义搜索引擎等,以进一步提升应用的实用性。
这个模块涵盖了应用层的源码,为开发者提供了一个深入理解Android浏览器工作原理和进行定制化开发的宝贵资源。 1. **Browser框架** Android 4.0 Browser的架构基于Chromium开源项目,其核心组件包括渲染引擎...
标题中的"Fenix"指的是Firefox Preview,这是一款由Mozilla公司开发的全新Android浏览器。这款浏览器在内部被称为"Fenix",旨在提供一个更加现代、快速且安全的浏览体验。与传统的Firefox不同,Fenix是基于Geckoview...
总的来说,这个"Android 网页浏览器源码"涵盖了Android应用开发中的多个核心领域,包括UI设计、网络通信、数据存储、安全性和性能优化。通过研究这个源码,开发者不仅可以学习到如何构建一个基础的浏览器,还可以...
但是现在,追求个性的你有了另一个不错的选择,这就是今天要推荐的Android浏览器Zirco-browser。 相对于海豚浏览器来说,Zirco是一个比较小众的浏览器,用户量可能微乎其微,但是经过使用测试,个人认为这是一...
在Android 仿ES界面浏览器项目中,源码提供了开发者如何实现特定功能的详细过程,包括网络请求、UI交互、数据存储等。对于学习Android开发的人来说,研究这样的源码有助于提升理解和技能。 3. **Elasticsearch**: ...
10. **自定义功能**:如书签管理、下载支持、搜索历史记录、网页翻译等,都是Android浏览器常见的附加功能。 11. **兼容性测试**:由于Android版本众多,浏览器需要进行广泛的兼容性测试,确保在不同版本的Android...
在Android开发中,创建一个类似ES(Elasticsearch)界面的文件浏览器是一项常见的需求,它可以帮助用户方便地浏览和管理设备上的文件系统。这个“Android 仿ES界面文件浏览器源码.zip”提供了一套实现此类功能的源...
8. **语音搜索和手势控制**: Android浏览器通常集成语音搜索功能,只需说出关键词即可进行搜索。部分浏览器还支持手势操作,如滑动切换标签页或前进/后退。 9. **同步功能**: Google Chrome和其他Google服务紧密...
浏览器功能, 无限制的选项卡浏览,左右循环滑动切换; 支持书签导入导出; 搜索引擎定制; 插件支持; User Agent; 同步Firefox 书签; 自由缩放; 地址栏搜索; 主页自定义; Ad-blocker; 页面内查找;
6. **强大的搜索集成**:地址栏同时也是搜索框,用户可以直接输入关键词进行搜索,无需访问搜索引擎主页。 7. **扩展支持**:虽然在模拟器中运行,但依然可以安装和使用各种Chrome扩展,扩展了浏览器的功能。 总的...
这款浏览器的源代码开放,允许社区成员参与到开发和改进中,这也是其被标记为“开源项目”的原因。 首先,让我们深入了解一下Brave浏览器的核心特性: 1. **广告拦截与隐私保护**:Brave浏览器内置了广告和跟踪器...
7. **智能搜索**:内置高效的搜索引擎,T+浏览器可能会提供智能预测和自动填充功能,帮助用户快速找到所需信息。 接下来,我们关注核心的“TPlusBrowser.exe”文件。这是T+浏览器的安装执行文件,用于在用户的...
- 提供网页、小说等多种搜索分类,默认使用百度搜索引擎。 - 支持热门关键词推荐及历史搜索记录。 - 可自定义默认搜索引擎。 - **书签与历史浏览**: - 支持书签同步、导入/导出及自定义排序。 - 历史记录管理...
* 这些浏览器都来自搜索引擎提供商和传统的 PC 软件开发商 八、测试结果和总结 * 本文将对六款浏览器的性能、功能和用户体验进行横向对比 * 测试结果将帮助用户选择最适合自己的浏览器 本文将对六款蜂巢平板...
开发者可以根据需要添加插件或修改功能,例如,实现自定义搜索引擎、添加广告拦截功能或者增强下载管理。这种灵活性使得Zirco-browser能够满足不同用户群体的需求。 总的来说,Zirco-browser作为一款开源的Android...
11. **自定义搜索引擎**:用户可能可以选择不同的搜索引擎,因此源码中应有实现切换和配置搜索引擎的逻辑。 12. **广告拦截**:一些浏览器可能会集成广告拦截功能,这需要解析网页结构并过滤广告请求。 13. **隐私...
5. **智能搜索**:内置的搜索引擎选择和智能建议功能,让查找信息变得更快速、更准确。 6. **手势控制**:通过简单的滑动手势,用户可以轻松地切换标签页、前进/后退,增强了浏览的交互性。 7. **增强的阅读模式**...
4. **设置模块**:允许用户调整浏览器的偏好设置,如夜间模式、默认搜索引擎等。 5. **安全模块**:实现安全策略,如风险检测和警告机制。 在实现过程中,开发者需要利用Android SDK和WebView组件构建核心浏览功能...