`
quanminchaoren
  • 浏览: 926477 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android 浏览器设置中的搜索引擎

阅读更多

更改浏览器设置中的搜索引擎 
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>

分享到:
评论
2 楼 谋生者 2012-04-28  
你上面提到的几个xml文件在browser/res/values/下都没找到,能不能说清楚一点?谢谢。。
1 楼 谋生者 2012-04-28  
你上面提到的几俱xml文件在browser/res/values/下都没找到,能不能说清楚一点?谢谢。。

相关推荐

    Android浏览器开发分析

    尽管没有具体的数据说明V8 JavaScript引擎对JavaScript标准的具体支持程度及其性能表现,但考虑到Chrome浏览器同样采用了V8引擎,并且在多种基准测试中表现出色,可以推测Android浏览器在这方面也有着不错的表现。...

    简单网页浏览器基于android

    **Android平台上简单网页浏览器开发详解** 在Android平台上开发一款简单的网页浏览器是许多初学...随着技能的提升,你可以尝试添加更多高级功能,如书签管理、夜间模式、自定义搜索引擎等,以进一步提升应用的实用性。

    android4.0 Browser浏览器 源代码

    这个模块涵盖了应用层的源码,为开发者提供了一个深入理解Android浏览器工作原理和进行定制化开发的宝贵资源。 1. **Browser框架** Android 4.0 Browser的架构基于Chromium开源项目,其核心组件包括渲染引擎...

    fenix,Fenix不是你父母的Android浏览器。.zip

    标题中的"Fenix"指的是Firefox Preview,这是一款由Mozilla公司开发的全新Android浏览器。这款浏览器在内部被称为"Fenix",旨在提供一个更加现代、快速且安全的浏览体验。与传统的Firefox不同,Fenix是基于Geckoview...

    Android 网页浏览器源码

    总的来说,这个"Android 网页浏览器源码"涵盖了Android应用开发中的多个核心领域,包括UI设计、网络通信、数据存储、安全性和性能优化。通过研究这个源码,开发者不仅可以学习到如何构建一个基础的浏览器,还可以...

    Android Zirco浏览器源码.zip

    但是现在,追求个性的你有了另一个不错的选择,这就是今天要推荐的Android浏览器Zirco-browser。   相对于海豚浏览器来说,Zirco是一个比较小众的浏览器,用户量可能微乎其微,但是经过使用测试,个人认为这是一...

    Android 仿ES界面浏览器源码.zip

    在Android 仿ES界面浏览器项目中,源码提供了开发者如何实现特定功能的详细过程,包括网络请求、UI交互、数据存储等。对于学习Android开发的人来说,研究这样的源码有助于提升理解和技能。 3. **Elasticsearch**: ...

    Android页面浏览器Android页面浏览器

    10. **自定义功能**:如书签管理、下载支持、搜索历史记录、网页翻译等,都是Android浏览器常见的附加功能。 11. **兼容性测试**:由于Android版本众多,浏览器需要进行广泛的兼容性测试,确保在不同版本的Android...

    Android 仿ES界面文件浏览器源码.zip源码资源下载

    在Android开发中,创建一个类似ES(Elasticsearch)界面的文件浏览器是一项常见的需求,它可以帮助用户方便地浏览和管理设备上的文件系统。这个“Android 仿ES界面文件浏览器源码.zip”提供了一套实现此类功能的源...

    android网页浏览器

    8. **语音搜索和手势控制**: Android浏览器通常集成语音搜索功能,只需说出关键词即可进行搜索。部分浏览器还支持手势操作,如滑动切换标签页或前进/后退。 9. **同步功能**: Google Chrome和其他Google服务紧密...

    Android Zirco浏览器源码_android开发_

    浏览器功能, 无限制的选项卡浏览,左右循环滑动切换; 支持书签导入导出; 搜索引擎定制; 插件支持; User Agent; 同步Firefox 书签; 自由缩放; 地址栏搜索; 主页自定义; Ad-blocker; 页面内查找;

    谷歌手机版X86安卓浏览器

    6. **强大的搜索集成**:地址栏同时也是搜索框,用户可以直接输入关键词进行搜索,无需访问搜索引擎主页。 7. **扩展支持**:虽然在模拟器中运行,但依然可以安装和使用各种Chrome扩展,扩展了浏览器的功能。 总的...

    brave-browser,下一代勇敢的MacOS、Windows、Linux浏览器,最终是Android浏览器.zip

    这款浏览器的源代码开放,允许社区成员参与到开发和改进中,这也是其被标记为“开源项目”的原因。 首先,让我们深入了解一下Brave浏览器的核心特性: 1. **广告拦截与隐私保护**:Brave浏览器内置了广告和跟踪器...

    T+浏览器安装包 TPlus浏览器安装文件

    7. **智能搜索**:内置高效的搜索引擎,T+浏览器可能会提供智能预测和自动填充功能,帮助用户快速找到所需信息。 接下来,我们关注核心的“TPlusBrowser.exe”文件。这是T+浏览器的安装执行文件,用于在用户的...

    UC浏览器android版产品分析教材.pptx

    - 提供网页、小说等多种搜索分类,默认使用百度搜索引擎。 - 支持热门关键词推荐及历史搜索记录。 - 可自定义默认搜索引擎。 - **书签与历史浏览**: - 支持书签同步、导入/导出及自定义排序。 - 历史记录管理...

    6款谷歌蜂巢平板浏览器点评.docx

    * 这些浏览器都来自搜索引擎提供商和传统的 PC 软件开发商 八、测试结果和总结 * 本文将对六款浏览器的性能、功能和用户体验进行横向对比 * 测试结果将帮助用户选择最适合自己的浏览器 本文将对六款蜂巢平板...

    Android应用源码之Zirco-browser:超越海豚的开源浏览器.zip

    开发者可以根据需要添加插件或修改功能,例如,实现自定义搜索引擎、添加广告拦截功能或者增强下载管理。这种灵活性使得Zirco-browser能够满足不同用户群体的需求。 总的来说,Zirco-browser作为一款开源的Android...

    安卓浏览器源码 功能齐全

    11. **自定义搜索引擎**:用户可能可以选择不同的搜索引擎,因此源码中应有实现切换和配置搜索引擎的逻辑。 12. **广告拦截**:一些浏览器可能会集成广告拦截功能,这需要解析网页结构并过滤广告请求。 13. **隐私...

    Android-FirefoxFenix是Mozilla为Android设备开发的移动浏览器

    5. **智能搜索**:内置的搜索引擎选择和智能建议功能,让查找信息变得更快速、更准确。 6. **手势控制**:通过简单的滑动手势,用户可以轻松地切换标签页、前进/后退,增强了浏览的交互性。 7. **增强的阅读模式**...

    一个基于Android的绿色浏览器的设计与实现.pdf

    4. **设置模块**:允许用户调整浏览器的偏好设置,如夜间模式、默认搜索引擎等。 5. **安全模块**:实现安全策略,如风险检测和警告机制。 在实现过程中,开发者需要利用Android SDK和WebView组件构建核心浏览功能...

Global site tag (gtag.js) - Google Analytics