android源码browser
⑴ 请教Android内置应用Browser编译成APK的问题
在Eclipse创建一个Android工程,把android.webkit目录下的java代码拷贝过来;
将/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/webkit下面的EventLogTags.java也拷贝到自己的工程;
因为android.webkit下的类会使用SDK中非公开的API,我们需要解决编译错误:
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jar
创建一个User Library,并且勾选System Library的选项;
加入以下Jar包:
在Java Build Path/Order and Export把创建的库放在最前面;
因为在我们应用中的android.webkit包跟SDK中的重名,所以我们需要更改包名,可以改成android.webkit2;
我们需要重新编译libchromium_net.so和libwebcore.so,并且使用另外的名字,并且把其代码中使用的android/webkit/ JNI路径改成android/webkit2/保证JNI的正确性:
在/home/roger/a41/external/chromium下面,把所有源文件的android/webkit/路径改成android/webkit2/;
打开/home/roger/a41/external/chromium/Android.mk,修改库名为libchromium_net2,并且加多一行“LOCAL_MODULE_TAGS := optional“,具体内容见后;
重新编译chromium_net,得到libchromium_net2.so;
在/home/roger/a41/external/webkit/Source/WebKit/android下面,把所有源文件的android/webkit/路径改成android/webkit2/;
打开/home/roger/a41/external/webkit/Android.mk,将库名改成libwebcore2.so,并且加多一行“LOCAL_MODULE_TAGS := optional“(需要修改两个地方,静态库编译和动态库编译),另外还需要把导入库libchromium_net改成libchromium_net2,具体内容见后;
重新编译webcore,得到libwebcore2.so;
接下来我们可以把修改后的libwebcore2.so和libchromium_net2.so push到手机的rom里面,假设路径是/data/local(如果没有写权限,用Root Explorer修改);
然后我们需要修改Java的代码,让它去加载我们自己的库,修改的地方位于JniUtil.java和WebViewCore.java,具体内容见后(加载顺序需要改变,先加载libchromium_net2.so再加载libwebcore2.so);
最后加上我们自己的Test Shell的代码,运行就OK了,如果只修改了C++的代码,重编译后再Push到手机,然后重新运行Test Shell就可以马上生效,Java的代码可以在Eclipse里面很方便的调试,C++的代码理论上也可以通过GDB进行调试;
一. IE浏览器。
首先打开一个网页,点击网页右上方的设置及更多。
网页浏览器是个显示网站服务器或文件系统内的文件,并让用户与这些文件交互的一种应用软件。它用来显示在万维网或局域网等内的文字、图像及其他信息。这些文字或图像,可以是连接其他网址的超链接,用户可迅速及轻易地浏览各种信息。大部分网页为HTML格式,有些网页需特定浏览器才能正确显示。
⑶ 如何修改Android中Browser的UserAgent
最近在研究Android自带的Chrome Lite浏览器,想修改下它的UserAgent,跟踪了下Android2.2的源代码,发现主要要修改如下几个地方:
1.platform/packages/apps/Browser/src/com/android/browser/BrowserSettings.java
2.platform/packages/apps/Browser/res/values/strings.xml
在strings.xml中找到这一段:
view plain to clipboardprint?
<!-- Do not tranlsate. Development option -->
<string-array name="pref_development_ua_choices" translatable="false">
<item>Android</item>
<item>Desktop</item>
<item>iPhone</item>
</string-array>
<!-- Do not tranlsate. Development option -->
<string-array name="pref_development_ua_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
这一段中pref_development_ua_choices对应的是Browser的debug模式下选择UserAgent时选项的名字,pref_development_ua_values对应的是不同的UserAgent,一会我会讲到这些数字分别对应的是什么UserAgent。
在BrowserSettings.java中找到这两段:
view plain to clipboardprint?
private static final String DESKTOP_USERAGENT = "Mozilla/5.0 (Macintosh; " +
"U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, " +
"like Gecko) Version/4.0 Safari/530.17";
private static final String IPHONE_USERAGENT = "Mozilla/5.0 (iPhone; U; " +
"CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 " +
"(KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16";
view plain to clipboardprint?
public void update(Observable o, Object arg) {
BrowserSettings b = (BrowserSettings)o;
WebSettings s = mSettings;
s.setLayoutAlgorithm(b.layoutAlgorithm);
if (b.userAgent == 0) {
// use the default ua string
s.setUserAgentString(null);
} else if (b.userAgent == 1) {
s.setUserAgentString(DESKTOP_USERAGENT);
} else if (b.userAgent == 2) {
s.setUserAgentString(IPHONE_USERAGENT);
}
由此我们可以看出第一段Java代码是不同的UserAgent字符串,从第二段代码中我们可以看出strings.xml中那个整数的数组和不同UserAgent的对应关系,0对应默认的UserAgent,即Android Chrome Lite自己的UserAgent,1对应的是Mac OS的UserAgent,2对应的是IPhone OS的UserAgent。
有了上述信息,添加一个自己的UserAgent就不是什么难事了,首先在strings.xml中添加一个UserAgent选项的名字,然后添加一个序号,然后在BrowserSettings.java中添加一个自己的UserAgent字符串,然后在最后一个if后面写一个
view plain to clipboardprint?
else if (b.userAgent == 3) {
s.setUserAgentString(YOUR_OWN_USERAGENT);
}
然后就大功告成了!
⑷ 浏览器统计中Android Webkit Browser是指的什么
您好,很高兴能帮助您,
WebKit 是一个开源的浏览器引擎,与之相应的引擎有Gecko(Mozilla Firefox 等使用的排版引擎)和Trident(也称为MSHTML,IE 使用的排版引擎)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的源码结构、极快的渲染速度。
你的采纳是我前进的动力,还有不懂的地方,请你继续“追问”!
如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助!
⑸ 这个安卓浏览器的源码用什么软件打开
浏览器源码的话,在手机上一般是不能编辑的,需要在电脑上面才可以打开使用java。
⑹ 如何用eclipse打开android源码
1.先打开eclipse主界面 选择File-》Important 2.选择Existing Android Code Into Workspace 3.点击Next,然后选择“browser” 定位到要导入应用所在的文件夹 4.然后就能看到已经建的程序,勾选它,然后点击“Finish” 注意:如果勾选了 projects into workspace 他会把你要导入的源程序 复制一份到你平时的workspace 一般建议勾选
⑺ android浏览器源码
已发送2.0 app源码
文件说明:
platform/packages/apps/AccountsAndSyncSettings.git
platform/packages/apps/AlarmClock.git
platform/packages/apps/Bluetooth.git
platform/packages/apps/Browser.git
platform/packages/apps/Calculator.git
platform/packages/apps/Calendar.git
platform/packages/apps/Camera.git
platform/packages/apps/CertInstaller.git
platform/packages/apps/Contacts.git
platform/packages/apps/DeskClock.git
platform/packages/apps/Email.git
platform/packages/apps/Gallery.git
platform/packages/apps/Gallery3D.git
platform/packages/apps/GlobalSearch.git
platform/packages/apps/GoogleSearch.git
platform/packages/apps/HTMLViewer.git
platform/packages/apps/IM.git
platform/packages/apps/Launcher.git
platform/packages/apps/Launcher2.git
platform/packages/apps/Mms.git
platform/packages/apps/Music.git
platform/packages/apps/Nfc.git tree
platform/packages/apps/OMAPCamera.git
platform/packages/apps/PackageInstaller.git
platform/packages/apps/Phone.git
platform/packages/apps/Protips.git
platform/packages/apps/Provision.git
platform/packages/apps/QuickSearchBox.git
platform/packages/apps/Settings.git
platform/packages/apps/SoundRecorder.git
platform/packages/apps/SpeechRecorder.git
platform/packages/apps/Stk.git
platform/packages/apps/Sync.git
platform/packages/apps/Tag.git
platform/packages/apps/Updater.git
platform/packages/apps/VoiceDialer.git
⑻ 如何利用Chromium For Android开发Android浏览器
采用AndroidStudio作为开发环境,从ChromiumforAndroid抽取chrome模块的源码,加入Androidproject。native代码在chromium环境中build,作为so加入Androidproject基础模块(base,content,net等)在chromium环境build为jar包,加入Androidprojectcontent,chrome,ui等模块的资源文件加入Androidlibraryproject资源文件为什么不能直接都添加到Androidproject呢?因为命名空间的原因,比如content模块的资源的命名空间为org.chromium.content,chrome模块的资源的命名空间为org.chromium.chrome,所以需要建立不同的Androidlibraryproject,指定不同的包名。最后整个项目的结构如下:browser|_app||_libs||_src||_main||_aidl||_assets||_java||_jniLibs||_res|_libraries|_androidmedia_res|_chrome_res|_content_res|_datausagechart_res|_ui_res
⑼ 有没有可以在 iOS 和 Android 上查看网页源码的浏览器
Android 上的 Firefox 可以在地址栏里的原URL前加 view-source: 即可查看源代码。
加装这个插件会新开一个标签来查看源代码,更方便些。
View Source Mobile
View Source Mobile :: Add-ons for Firefox for Android
另外 @Bill Cheng : Android 上的 Firefox 暂时还没有 FireBug 。
⑽ 安卓开发怎么在APP内部调用手机系统浏览器打开指定html并获取HTML的数据
Android开发_如何调用 浏览器访问网页和Html文件
一、启动android默认浏览器
Intent intent= new Intent();
intent.setAction('android.intent.action.VIEW');
Uri content_url = Uri.parse('http://www.cnblogs.com');
intent.setData(content_url);
startActivity(intent);
这样子,android就可以调用起手机默认的浏览器访问。
二、指定相应的浏览器访问
1、指定android自带的浏览器访问
( “com.android.browser”:packagename ;“com.android.browser.BrowserActivity”:启动主activity)
Intent intent= new Intent();
intent.setAction('android.intent.action.VIEW');
Uri content_url = Uri.parse('http://www.cnblogs.com');
intent.setData(content_url);
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity');
startActivity(intent);
2、启动其他浏览器(当然该浏览器必须安装在机器上)
只要修改以下相应的packagename 和 主启动activity即可调用其他浏览器
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity');
uc浏览器':'com.uc.browser', 'com.uc.browser.ActivityUpdate“
opera :'com.opera.mini.android', 'com.opera.mini.android.Browser'
qq浏览器:'com.tencent.mtt', 'com.tencent.mtt.MainActivity'
三、打开本地html文件
打开本地的html文件的时候,一定要指定某个浏览器,而不能采用方式一来浏览,具体示例代码如下
Intent intent= new Intent();
intent.setAction('android.intent.action.VIEW');
Uri content_url = Uri.parse('content://com.android.htmlfileprovider/sdcard/help.html');
intent.setData(content_url);
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity');
startActivity(intent);
关键点是调用了”content“这个filter。
以前有在win32编程的朋友,可能会觉得用这种形式”file://sccard/help.html“是否可以,可以很肯定的跟你说,默认的浏览器设置是没有对”file“这个进行解析的,如果要让你的默认android浏览器有这个功能需要自己到android源码修改manifest.xml文件,然后自己编译浏览器代码生成相应的apk包来重新在机器上安装。
大体的步骤如下:
1、打开 packages/apps/Browser/AndroidManifest.xml文件把加到相应的后面就可以了
2、重新编译打包,安装,这样子,新的浏览器就支持”file“这个形式了
有兴趣的可以去试试。