理解WebKit和Chromium: 调试Android系统上的Chromium
转载请注明原文地址:http://blog.csdn.net/milado_nju
1. Android上的调试技术
在Android系统上,开发人员能够使用两种不同的语言来开发应用程序,一种是Java语言,开发人员使用的是Android SDK来配置和编译这些代码,生成Java语言的class文件,也就是Java虚拟机执行的二进制代码。Android系统使用.dex文件将一系列的class文件压缩在一起。第二种是C/C++语言,使用Android NDK来配置和编译这些代码。这些代码经过NDK编译后就是汇编码并合成动态链接库,也就是.so文件。调试Java代码和C/C++代码须要不同的技术和方法,以下分别来介绍它们。
1.1 前提条件
1.2 开启/关闭调试功能
1.3 Java代码调试基础
“adb”是Android SDK中很重要的工具,它能够用来安装、卸载应用程序,执行各种命令等,而且用来帮助调试Android应用。而DDMS称为
1.4 C/C++代码调试基础
由于并不是全部的Android应用都使用C/C++代码和Android NDK来编写,所以这部分的内容对于调试某些应用其实是可选的。可是由于Chromium的绝大部分代码都是使用C++来编写的,所以调试本地代码是对学习Chromium来说是一个很重要的部分。下图是笔者理解的本地代码的调试基础框架。
1.5 各种调试技术
2. 调试Chromium代码
2.1 调试Content Shell 的Java代码
2.2 调试Content Shell的本地代码
file app_process
directory /absolute-source-path/src
set solib-absolute-prefix /absolute-source-path/out/target/product/product-name/symbols
set solib-search-path /absolute-source-path/out/target/product/product-name/symbols/system/lib
target remote :5039
shared
3. 其他调试技术
3.1 Logging
由此,开发人员能够使用Android的"logcat"命令来查看日志输出的结果信息,如以下所看到的的命令:
3.2 Tombstone
3.3 ANR
adb shell dumpsys input
3.4 其他
4. 參考资料
- 4.1 https://sites.google.com/a/itspaclub.com/www/android-debug/android-debug-theory/1-4-debugging-techniques
- 4.2 http://www.kandroid.org/online-pdk/guide
理解WebKit和Chromium: 调试Android系统上的Chromium的更多相关文章
- Android系统上如何实现easyconfig(airkiss)
刚买回来一个智能音箱和博联,需要给音箱和博联配置联网,音箱需要先打开蓝牙,然后在手机app中填写wifi的ssid和密码,通过蓝牙发送到音箱,音箱收到后连接到wifi. 博联就比较奇怪,进入联网模式以 ...
- 1. Android 系统上一款开源的图表库
1. MPAndroidChart MPAndroidChart 是 Android 系统上一款开源的图表库.目前提供线图和饼图,支持选择.缩放和拖放. 一个可以拖动缩放的图表库,包含曲线图.直方图 ...
- 转 让Python在Android系统上飞一会儿
让Python在Android系统上飞一会儿 地址: http://blog.csdn.net/ccwwff/article/details/6208260
- 深入学习Android系统上mount命令的使用
博客链接:http://blog.csdn.net/qq1084283172/article/details/52493227 在Android系统的预装apk病毒和elf病毒的清除时,经常需要先获取 ...
- 如何通过Chrome远程调试android设备上的Web网站
网上的帖子很多,但很多都是老版本的,试过了,根本不管用,花了一天时间,终于在本机试验通过了,特记录下来,以备用.有需要的朋友也可以参考.先上一张图,看看PC端chrome上调试的效果: 左边是手机的模 ...
- 【Android】让Python在Android系统上飞一会儿
第一节 在手机上配置Python运行环境 1.下载和安装 Scripting Layer for Android (SL4A) Scripting Layer for Android (SL4A) 是 ...
- Android驱动入门-在Android系统上运行JAVA程序
在linux上运行java程序,直接用javac编译,再用java运行就行了.但是在Android上,由于虚拟机和pc端的不同,所以操作方法也是不一样的. 如果想在Android上运行Hello wo ...
- 运行在 Android 系统上的完整 Linux -- Termux
Termux 可以在安卓系统上搭建一个完整的linux 环境,类似于 cygwin 并非linux 虚拟机,整个安装包只有 几百KB 刚开始觉得这东西的命令行很难用,看了官方介绍后才发现它原来有许多 ...
- 在android系统上写C语言程序--开机启动该程序不进入安卓系统
今天要写的这篇博文意义重大,也是网上很少有的,这是在我工作中学会的一项技术,当然,它也是由简单的问题组合而来的.如何在安卓中写C语言程序,调试安卓驱动,测试程序的的一项重要技能,下面我就不说废话了,直 ...
随机推荐
- HDU5794 A Simple Chess 容斥+lucas
分析:转自http://blog.csdn.net/mengzhengnan/article/details/47031777 一点感想:其实这个题应该是可以想到的,但是赛场上并不会 dp[i]的定义 ...
- vijos P1213 80人环游世界(有源汇的上下界费用流)
[题目链接] https://vijos.org/p/1213 [题意] m个人将n个点访问完,每个点能且只能访问v次,点点之间存在有权边,问最小费用. [思路] 有源汇的上下界最小费用最大流. 每个 ...
- 线段和矩形相交 POJ 1410
// 线段和矩形相交 POJ 1410 // #include <bits/stdc++.h> #include <iostream> #include <cstdio& ...
- Python 学习笔记(三)Function
python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 1. Scope: • If a variable is assi ...
- Tkinter教程之Event篇(3)
本文转载自:http://blog.csdn.net/jcodeer/article/details/1823550 '''Tkinter教程之Event篇(3)''''''11.两个事件同时绑定到一 ...
- 复习C语言
今天突然有感觉复习下C语言了,发现已经好久没有用过C编程了,话说最近都没有编过程序了都,趁现在还有点时间,好好学习下C了.话不多说上题目 请定义一个宏,比较两个数a.b的大小,不能使用大于.小于.if ...
- android开发关于popupwindow显示关闭的笔记
一.方法一: popupWindow.setFocusable(false); //这样popupWindow无法获得焦点,无法处理popupWindow中的事件 设置MainActivity的onT ...
- CDH5.5.1版HBase安装使用LZO压缩
1.安装 RHEL/CentOS/Oracle 5 Navigate to this link and save the file in the /etc/yum.repos.d/ dire ...
- 编译器对C++ 11变参模板(Variadic Template)的函数包扩展实现的差异
编译器对C++ 11变参模板(Variadic Template)的函数包扩展实现的差异 题目挺绕口的.C++ 11的好东西不算太多,但变参模板(Variadic Template)肯定是其中耀眼的一 ...
- 安卓app开发方式之webApp
1.phonegap: 专注于webapp调用native的功能.2.ionic: 专注于webapp的前端ui技术,需要与phonegap(准确的说是和Cordova配合使用).ionic是一个专注 ...