android2.3编译调试browser源码
Android源码编译
Android源码编译开发工具:Ubuntu10.04在Ubuntu下使用root用户登录,注意root一开始是锁定的,使用如下命令解锁:sudopasswd root 按回车铵,提示输入当前密码,在提示输入二次密码。
输入完成切换用户使用root用户登录。
Android源码结构Makefile (全局的Makefile)bionic (Bionic含义为仿生,这里面是一些基础的库的源代码)bootloader(引导加载器)build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)dalvik (JAVA虚拟机)development(程序开发所需要的模板和工具)external (目标机器使用的一些库)frameworks (应用程序的框架层)hardware (与硬件相关的库)kernel (Linux2.6的源代码)packages (Android的各种应用程序)prebuil (Android在各种平台下编译的预置脚本)recovery (与目标的恢复功能相关)system (Android的底层的一些库)Out (编译好的文件)编译Android源码必需的安装的软件包g++库文件有可能Ubuntu自带,使用g++ -v命令查找是否安装,如果没有自带请手动安装,使用如下命令,sudo apt-get-install g++-4.4.注意:g++分很多版本,如果使用了最新版本4.6将没办法编译,建议安装4.4版本Gcc库文件有可能Ubuntu自带,使用gcc–v命令查找是否安装,如果没有自带使用如下命令手动安装,sudo apt-get-install gcc-4.4.注意:gcc分很多版本,如果使用了最新版本4.6将没办法编译,建议安装4.4版本不过还有一些应该是linux系统自带的,如果缺少就按照提示install一下sudo apt-get install build-essentialsudo apt-get install makesudo apt-get install libc6-devsudo apt-get install patchsudo apt-get install texinfosudo apt-get install libncurses-devsudo apt-get install git-core gnupgsudo apt-get install flex bison gperflibsdl-dev libesd0-devlibwxgtk2.6-dev build-essential zip curlsudo apt-get install ncurses-devsudo apt-get install zlib1g-devsudo apt-get install valgrindsudo apt-get install python2.5安装java环境首先从sun官方网站下载jdk-6u16-linux-i586.bin文件并安装它。
android源码编译及rom制作
GNU make 3.81-3.82 JDK 6(生成 Gingerbread 或更高版本) JDK 5(Froyo 或旧版本) Git 1.7 或更高版本 gcc/g++ 4.4 (其他版本编译出错)
设置Linux编译环境
安装JDK: Java6:
$ sudo add-apt-repository "deb / lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk
一整套编译 100GB 选择编译分支
建议:不要使用虚拟机安装ubuntu编译 1、编译花费时间长,需要内存大 2、如果配置低,可能会卡住不动 3、虚拟机连接手机有问题,很可能不识别,编译前需要从手机拉 配置数据;不能使用fastboot模式刷机
设置Linux编译环境
|-- prebuilt
(x86和arm架构下预编译的一些资源)
|-- sdk
(sdk及模拟器)
|-- system
(文件系统库、应用及组件——C语言)
|-- vendor
(厂商定制代码)
Android源码编译
初始化编译环境 下载代码树 编译 编译内核
sudo chmod a+rx /etc/udev/rules.d/51-android.rules sudo /etc/init.d/udev restart
3.重启adb服务(必须为sudo 已配置android环境变量)
ANDROID源码编译流程
ANDROID源码编译流程编译Android源代码是一个相对复杂的过程,但是如果你按照正确的步骤进行,你就可以成功地编译出你自己的Android系统。
下面是一个大致的流程来编译Android源代码:1.环境准备:在开始编译Android源代码之前,你需要确保你的系统满足以下要求:- Linux系统(推荐使用Ubuntu)-64位操作系统-至少8GB的RAM-大规模存储空间(30GB或更多)你还需要安装一些必要的开发包和工具,例如JDK、Git等。
详细的要求可以在Android官方网站上找到。
2.获取源代码:要编译Android系统,你需要先获取源代码。
Android的源代码存储在Git仓库中,你可以使用Repo工具来管理多个Git仓库。
首先,你需要安装Repo工具。
你可以通过下面的命令来安装:```$ sudo apt-get install repo```之后,在一个合适的目录下创建一个新的文件夹来存放源代码:$ mkdir myandroid$ cd myandroid```使用Repo工具来初始化一个仓库:``````之后,同步源代码到你的本地仓库:```$ repo sync```这个过程可能需要花费几个小时甚至更长时间,取决于你的网络速度和计算机配置。
3.构建工具链:Android使用GNU Make和Ninja构建工具来构建系统。
你需要安装这些工具。
首先,安装GNU Make和一些必要的依赖库:```$ sudo apt-get install build-essential然后,安装Ninja:```$ sudo apt-get install ninja-build```4.配置构建环境:在构建Android系统之前,你需要进行一些配置操作。
首先,你需要选择要构建的目标设备和版本。
你可以在Android源代码的根目录中找到`lunch`脚本。
运行`lunch`脚本并选择你的目标:```$ source build/envsetup.sh$ lunch```然后,你需要选择编译时使用的编译器。
AndroidStudio如何查看源码并调试的方法步骤
AndroidStudio如何查看源码并调试的⽅法步骤背景最近遇到⼀个Dialog问题,在6.0的⼿机上才可以重现,但是我们的⼯程已经是targetsdk=28了,点击Dialog的引⽤,只能看见28的class⽂件,现在我也越来越懒了,以前针对这种问题,我都会写个demo,去重现问题,但是现在希望能直接在当前⼯程快速定位出原因,能够基于源码debug肯定更好了,为了实现这个懒的⽬标,我找了很多办法,下⾯就⼀⼀介绍下⽅法⼀切换compilesdkstudio默认使⽤的是gradle⾥配置的compilesdkversion,只要你把compilesdkversi设置成23,⾃然就可以通过查看define的快捷键,进⼊到对应的class⽂件,但是我的项⽬已经是28了,降回6.0,必然有很多API⽆法编译,此路不同⽅法⼆寻找studio插件既然studio提供的默认⽅式不⾏,那我们就找插件来实现呢?通过各种搜索⼤法,我找到了⼀款不错的插件,; 功能⼗分强⼤:⽀持查看 Android / Java 任意版本源码⽀持对⽐ Android / Java 任意两个版本源码差异⽀持 Android 官⽹⽂档查看和⽅法定位⽀持 Native ⽅法源码查看具体可以看截图:正当我满⼼欢喜的开启debug时,发现studio⽆法识别该代码,原因是作者的思路是在类名前⾯加版本号。
例如.AndroidSourceViewer/cache/android/app/8.0.0_r4-Dialog.java于是我愤怒的提了个此路再次失败⽅法三修改studio配置,直接链接到对应源码我的想法时,我找到studio跳转源码的配置⽂件,将原本跳到28的jar包的配置,修改成23,这样不就完美了,于是我⼜开启了搜索⼤法,⽹上都说,修改jdk-table.xml,可以达到我的⽬的,然⽽。
亲测不可以;不论我怎么修改,都没有反应;于是我⼜想到了idea的缓存,果然功夫不负有⼼⼈,我找到了这么个⽂件:.idea/libraries/Gradle__android_android_28.xml<component name="libraryTable"><library name="Gradle: android-android-28"><CLASSES><root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-27/android.jar!/" /></CLASSES><JAVADOC /><SOURCES><root url="file://$USER_HOME$/Library/Android/sdk/sources/android-28" /></SOURCES></library></component>PS:该⽂件可能没有,⼤家可以⼿动添加到⾃⼰的缓存⾥通过修改这个⽂件,只要源码路径存在,那就可以很⽅便的其他版本的源码并且调试了;但是修改源码路径有风险,⼤家还是谨慎操作,同时记得不⽤的时候清空缓存。
Ubuntu 32位机上安装编译Android2.3源码
Ubuntu10.10系统32位机上安装编译Android2.3源码,其步骤和注意事项如下:1.安装JDK6对于Android2.3系统,不要安装JDK5,应该安装最新的JDK6。
如果安装了JDK6,Android会自动按64位编译,如果系统是32位的,会有编译错误,后面会说如何修改这个错误。
sudo add-apt-repository "deb /lucid partner"sudo add-apt-repository "deb-src /ubuntu lucid partner"sudo apt-get updatesudo apt-get install sun-java6-jdksudo update-java-alternatives -s java-6-sun安装完后,需要手动设置JAVA_HOME, JRE_HOME, CLASS_PATH 为JDK6的安装路径。
2. 安装各种包$ sudo aptitude install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev3. 安装Repo$ mkdir ~/bin$ export PATH=~/bin:$PATH$ curl /repo> ~/bin/repo$ chmod a+x ~/bin/repo4. 下载Android源码$mkdir ~/android2.3$cd ~/android2.3$ repo init -u git:///platform/manifest.git$ repo sync这一步持续时间很长,整个源码+SDK共5G左右,我是下载了一个晚上才搞定,网速不给力啊。
androidx browser用法
androidx browser用法AndroidX Browser是一个支持Android设备上网浏览功能的组件库。
本文将详细介绍AndroidX Browser的用法,并提供一步一步的回答。
第一步:了解AndroidX BrowserAndroidX Browser是Google为Android设备提供的一个快速、高性能的网页浏览器。
它基于Chromium项目开发,为用户提供出色的浏览体验和安全性能。
与传统的WebView相比,AndroidX Browser具有更强大的功能和更好的性能。
第二步:导入AndroidX Browser库要使用AndroidX Browser,首先需要将其库文件导入到Android项目中。
可以通过在项目的build.gradle文件中添加以下依赖项来实现:implementation 'androidx.browser:browser:1.3.0'确保你的项目已经使用了AndroidX支持库,并且已经同步并构建了项目。
第三步:创建WebView组件在布局文件中,可以添加一个WebView组件来显示网页内容。
可以在XML布局文件中添加以下代码来定义WebView:<WebViewandroid:id="@+id/webview"android:layout_width="match_parent"android:layout_height="match_parent" />然后,在相应的Activity或Fragment中,可以通过以下方式获取对WebView的引用:WebView webView = findViewById(R.id.webview);第四步:加载网页内容要加载网页内容,可以使用WebView组件的loadUrl()方法。
以下是一些示例代码:webView.loadUrl("这将加载指定URL的网页内容并显示在WebView中。
Ubuntu下Android源码修改编译及运行launcher定制
Ubuntu下Android源码修改编译及运行launcher定制在Ubuntu下进行Android源码的修改、编译和运行,以及定制launcher,需要以下步骤:1.安装必要的软件和依赖项:在Ubuntu终端中输入以下命令来安装必要的软件和依赖项:```sudo apt-get updatesudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \libgl1-mesa-dev libxml2-utils xsltproc unzip``````mkdir ~/android-sourcecd ~/android-sourcerepo sync```3.修改源码:进入源代码的根目录:```cd ~/android-source```进行所需的修改,如添加新功能、修改界面等。
4.编译源码:在源码目录下执行以下命令以编译源码:```. build/envsetup.shlunchmake````lunch`命令会提示选择要编译的目标平台和设备,选择相应的选项后执行`make`命令进行编译。
5. 运行Android模拟器或设备:在源码目录下执行以下命令来运行Android模拟器或设备:```emulator```或者连接一台Android设备并执行以下命令:```adb devicesadb shell```6. 定制Launcher:Launcher是Android系统的主屏界面,可以对其进行定制以满足特定需求。
以下是一些定制Launcher的方法:- 修改源码中Launcher的布局和样式:可以修改源码中的布局文件和样式文件来改变Launcher的外观。
android源码编译问题,解决Android源码编译错误的问题
android源码编译问题,解决Android源码编译错误的问题如下所⽰:Building with Jack: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dexFAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rspOut of memory error (version 1.2-a26 'Carnac' (291201 fcd657165d2fd6dcf1bf4c3002c9c8f75383e815 by android-jack-team@)).GC overhead limit exceeded.Try increasing heap size with java option '-Xmx'.Warning: This may have produced partial or corrupted output.ninja: build stopped: subcommand failed.在⽂件/prebuilts/sdk/tools/jack-admin中修正-Xmx参数。
1、修改变量JACK_SERVER_VM_ARGUMENTS,添加参数 -Xmx2048MJACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -mx2048M}"2、进⼀步修正重启参数(该步骤可以省略)找到jack-admin中的start-server语句,直接在⾥⾯增加:start-server)isServerRunningRUNNING=$?if [ "$RUNNING" = 0 ]; thenecho "Server is already running"elseecho "before to start-server,JACK_SERVER_VM_ARGUMENTS=" $JACK_SERVER_VM_ARGUMENTSJACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS-Xmx2048M -cp $LAUNCHER_JAR $LAUNCHER_NAME"echo "Launching Jack server" $JACK_SERVER_COMMAND(补充知识:编译android 7.0 出现Try increasing heap size with java option '-Xmx'错误解决⽅案出现这个错误是由于电脑内存不⾜,在命令⾏分别执⾏以下三条语句,然后继续编译export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"./prebuilts/sdk/tools/jack-admin kill-server./prebuilts/sdk/tools/jack-admin start-server以上这篇解决Android 源码编译错误的问题就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
filebrowser编译方法
filebrowser编译方法FileBrowser是一款强大的文件管理器,广泛应用于Android平台。
要成功编译FileBrowser,您需要遵循以下步骤:一、获取所需工具和环境首先,您需要确保您的计算机上已安装Java Development Kit (JDK)和Android SDK。
同时,您还需要配置正确的环境变量,以确保编译器能够找到必要的库和工具。
二、下载FileBrowser源代码从FileBrowser的官方网站或GitHub仓库下载最新的源代码。
确保您下载的代码是适用于您所使用的Android版本的。
三、解压源代码将下载的压缩包解压到您选择的目录中。
确保您选择的目录具有适当的权限和空间,以便容纳源代码和编译生成的文件。
四、配置构建文件FileBrowser源代码中包含一个build.gradle文件,用于配置编译过程。
打开该文件,根据您的需求进行必要的配置。
例如,您可以指定使用的构建工具、依赖项和其他构建选项。
五、编译源代码在命令行中,导航到FileBrowser源代码的根目录,并执行以下命令进行编译:`./gradlew assembleDebug`这将编译FileBrowser源代码,并生成一个适用于Android设备的APK文件。
六、安装编译后的APK文件将生成的APK文件复制到您选择的存储位置,并通过Android设备上的文件管理器进行安装。
确保您的设备连接到计算机,并且已启用开发者选项和USB调试模式。
七、测试FileBrowser安装完成后,您可以通过设备上的FileBrowser应用程序测试您的构建。
确保您能够正常访问文件和文件夹,并且功能符合您的预期。
八、优化和调试根据测试结果,您可能需要对源代码进行进一步的优化和调试。
请根据实际情况调整配置文件和代码,并重复执行编译和测试过程,直到达到满意的成果。
总的来说,编译FileBrowser需要一定的技术和环境配置。
jxbrowser debug 代码
jxbrowser debug 代码【原创版】目录1.JxBrowser 简介2.JxBrowser 的调试功能3.JxBrowser 调试代码的使用方法4.总结正文1.JxBrowser 简介JxBrowser 是一款基于 Java 的浏览器控件,它可以方便地在 Java 应用程序中嵌入浏览器功能。
JxBrowser 支持多种浏览器内核,如 IE、Firefox、Chrome 等,为用户提供了灵活的选择。
同时,JxBrowser 还提供了丰富的 API,方便开发者进行二次开发和定制。
2.JxBrowser 的调试功能在开发过程中,调试功能是必不可少的。
JxBrowser 也提供了强大的调试功能,包括调试代码、查看 DOM 元素、监听网络请求等。
通过这些调试功能,开发者可以更方便地定位问题和解决问题。
3.JxBrowser 调试代码的使用方法要使用 JxBrowser 的调试功能,首先需要在代码中引入 JxBrowser 的依赖。
在项目的 pom.xml 文件中添加以下依赖:```xml<dependency><groupId>com.jxsoft.jxbrowser</groupId><artifactId>jxbrowser</artifactId><version>1.8.0</version></dependency>```接下来,在代码中创建一个 JxBrowser 的实例,并通过调用`setDebugMode`方法开启调试模式。
例如:```javaimport com.jxsoft.jxbrowser.JxBrowser;public class Main {public static void main(String[] args) {JxBrowser browser = new JxBrowser();browser.setDebugMode(true);// 其他代码}}```在开启了调试模式之后,JxBrowser 会自动捕获和处理所有的异常信息,并在控制台输出。
飞凌OK6410安卓2.3.4的编译环境搭建与烧写
飞凌OK6410安卓2.3.4的编译环境搭建与烧写飞凌 OK6410 安卓 2.3.4 的编译环境搭建与烧写1、⼯具下载及其环境搭建 本⽂环境:VMWare 15 PRO,Ubuntu16.04.6_amd64(64位的版本),安卓 2.3.4 下⾯进⼊主题,先搭建编译环境吧,虚拟机不知道怎么创建的,请看上⾯给出的链接,这⾥⾯我介绍了⼗分全⾯,包括git,make,gcc,g++等等的配置 飞凌 OK6410 安卓代码下载地址::提取码:w2ue 由于飞凌提供的代码是按照 32 位环境编译的,⾥⾯提供的⼯具也⾃然都是 32 位的了(包括⾥⾯提供的 jdk ),所以⾃⼰去下对应版本的 jdk 吧。
当然我这⾥也会提供。
飞凌提供的32位版本jdk 版本对应⼀致的 jdk 的下载地址::提取码:wdei 由于Ubuntu16.04 ⾃带的 make版本过⾼,需要降低 make 版本 make 3.8.1 源码的下载地址::提取码:2spp2、安装教程 make 降低版本安装教程地址:2.1、gcc,g++ 降低版本 之所以要降低版本,因为 Ubuntu16.04 ⾃带的各种⼯具版本版本都太⾼了,编译低版本安卓时会报很多错误,因此需要将⼀些⼯具降低版本使⽤ gcc,g++ 降低版本教程地址:! 安装依赖环境:1sudo apt-get install bison2sudo apt-get install zlib1g-dev3sudo apt-get install lib32z1-dev4sudo apt-get install flex5sudo apt-get install libncurses5-dev6sudo apt-get install libncurses5-dev:i3867sudo apt-get install libx11-dev8sudo apt-get install gperf9sudo apt-get install libswitch-perl10sudo apt-get install libsdl1.2debian:i3862.2、jdk 64位安装 因为我这⾥使⽤的是 64 位的 Ubuntu16.04 下载地址在上⾯已经提供,编译相关的⼯具链我个⼈习惯放置 /opt ⽬录下1mv jdk-6u23-linux-x64.bin /opt 更改属性1chmod u+x jdk-6u23-linux-x64.bin 运⾏⾃动解压1 ./jdk-6u23-linux-x64.bin 配置 jdk 使其对所有⽤户⽣效,注意:如果配置这⼀步,则需要修改飞凌安卓代码⾥头的编译脚本1sudo vim /etc/profile23 export JAVA_HOME=/opt/jdk1.6.0_234 export JRE_HOME=${JAVA_HOME}/jre5 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib6 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin 针对飞凌,不⽤在 /etc/profile 中配置,直接将 ./jdk-6u23-linux-x64.bin 解压出来的⽂件放置安卓源码中 android2.3.4-32bit/ ⽬录下,替换飞凌提供的 32位 jdk 如果要在 /etc/profile 中对 jdk 进⾏全局⽣效,那就将 build-android 脚本中的第6⾏ export PATH=$PATH:$PWD/jdk1.6.0_23/bin 注释掉3、编译 解压安卓代码1tar -zxvf android2.3.4_32bit-2012-10-11.tar.gz 提供的源码适⽤于 32 位系统下编译,⾸先确定你的linux 是否是 32 位或 64 位的系统,⽤命令 uname -a 可以查看,如果是 64 位操作系统请坐以下修改 如果你使⽤的是 32 位系统,请忽略这⼀步1 ./external/clearsilver/cgi/Android.mk23 ./external/clearsilver/java-jni/Android.mk45 ./external/clearsilver/util/Android.mk67 ./external/clearsilver/cs/Android.mk 四个⽂件中的1 LOCAL_CFLAGS += -m6423 LOCAL_LDFLAGS += -m6445//注释掉,或者将“64”换成“32”67 LOCAL_CFLAGS += -m3289 LOCAL_LDFLAGS += -m32 然后,将 ./build/core/main.mk 中的 ifneq (64,$(findstring 64,$(build_arch))) 改为: ifneq (i686,$(findstring i686,$(build_arch)))在 dalvik/vm/native/dalvik_system_Zygote.cpp ⽂件中添加头⽂件#include <sys/resource.h> 开始编译:1 /forlinx/android2.3.4_32bit# ./build-android2 including device/htc/passion/vendorsetup.sh3 including device/samsung/crespo/vendorsetup.sh4 ============================================5 PLATFORM_VERSION_CODENAME=REL6 PLATFORM_VERSION=2.3.47 TARGET_PRODUCT=OK64108 TARGET_BUILD_VARIANT=eng9 TARGET_SIMULATOR=false10 TARGET_BUILD_TYPE=release11 TARGET_BUILD_APPS=12 TARGET_ARCH=arm13 HOST_ARCH=x8614 HOST_OS=linux15 HOST_BUILD_TYPE=release16 BUILD_ID=GRJ06D17 ============================================18 Checking build tools versions...1920 ... ...2122 Generated: (out/target/product/OK6410/android-info.txt)23 Target system fs image: out/target/product/OK6410/obj/PACKAGING/systemimage_intermediates/system.img24 Install system fs image: out/target/product/OK6410/system.img25 Target ram disk: out/target/product/OK6410/ramdisk.img26 Target userdata fs image: out/target/product/OK6410/userdata.img27 Installed file list: out/target/product/OK6410/installed-files.txt制作⽂件系统 制作⽂件系统 : 根⽬录下提供了制作⽂件系统的脚本, make-rootfs-nand2g, 执⾏这个脚本即可制作根⽂件系统; -- 命令 : 进⼊ Android 源码根⽬录, 执⾏ ./make-rootfs-nand2g 命令, 之后在根⽬录⽣成 rootfs.yaffs2 就是制作的根⽂件系统; -- 注意 : ⼀定要区分这两个脚本, make-rootfs-nand256m ⽤于制作 128M 内存 256 M NandFlash 的开发板的⽂件系统, make-rootfs-nand2g ⽤于制作 256M 内存 2G NandFlash 开发板的⽂件系统;1 /forlinx/android2.3.4_32bit# ls2 bionic cts external libcore make-rootfs-nand2g ndk Readme vendor3 bootable dalvik frameworks Makefile make-rootfs-nand2g~ out sdk4 build development hardware make-rootfs-nand256m mkyaffs2image-nand256m packages setenv5 build-android device jdk1.6.0_23 make-rootfs-nand256m~ mkyaffs2image-nand2g prebuilt system6 root@octopus:/forlinx/android2.3.4_32bit# ./make-rootfs-nand256m7 Generating rootfs for Android......done8 Create device file......done9 Install prebuilt packages......done10 Install firmware for 3G ......done11 Install ppp for 3G...done12 Install usb_modeswitch.d for 3G...done13 Install Dialup for 3G...done14 Install ForlinxLED permissions fileInstall Apps filemkyaffs2image: image building tool for YAFFS2 built Nov 24201115 Processing directory rootfs_dir into image file rootfs.yaffs21617 ... ...1819 bject 1457, rootfs_dir/system/bin/sdcard is a file, 5 data chunks written20 Object 1458, rootfs_dir/system/bin/dumpstate is a file, 17 data chunks written21 Object 1459, rootfs_dir/system/bin/bootanimation is a file, 12 data chunks written22 Object 1460, rootfs_dir/system/bin/Looper_test is a file, 35 data chunks written23 Object 1461, rootfs_dir/system/bin/ioctl is a symlink to "toolbox"24 Object 1462, rootfs_dir/system/bin/dvz is a file, 3 data chunks written25 Object 1463, rootfs_dir/forlinx.rc is a file, 1 data chunks written26 Operation complete.272414 objects in63 directories2835361 NAND pages29 ...done30 ...done31 /forlinx/android2.3.4_32bit# ls32 bionic cts external libcore make-rootfs-nand2g ndk Readme setenv33 bootable dalvik frameworks Makefile make-rootfs-nand2g~ out rootfs_dir system34 build development hardware make-rootfs-nand256m mkyaffs2image-nand256m packages rootfs.yaffs2 vendor35 build-android device jdk1.6.0_23 make-rootfs-nand256m~ mkyaffs2image-nand2g prebuilt sdk4、配置 U-boot、kernel 的编译环境 将飞凌6410-android2.3-20140613\编译器⽬录下的 arm-linux-gcc-4.3.2.tgz、arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 两个编译链拷贝到虚拟机中并解压 我个⼈习惯放置 /opt ⽬录下,1sudo mv arm-linux-gcc-4.3.2.tgz /opt2sudo mv arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 /opt 解压:1 sudo tar -zxvf arm-linux-gcc-4.3.2.tgz -C /opt2 sudo tar -jxvf arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 -C /opt 全局变量⽣效:1 vim /etc/profile23 export PATH=$PATH:/opt/usr/local/arm/arm-none-linux-gnueabi/bin4 export PATH=$PATH:/opt/usr/local/arm/4.3.2/bin 机器重启或者 . /etc/profile 或者 source /etc/profile ⽴即⽣效编译 U-boot 将飞凌提供的 U-boot 代码 uboot1.1.6-2012-10-11.tar.gz,Kernel 代码 android2.3_kernel_v3.00-2014-06-12.tar.gz 复制到你的⼯作空间去 解压 U-boot 代码1tar -zxvf uboot1.1.6-2012-10-11.tar.gz 进⼊ U-boot 顶层⽬录,修改 Makefile 找到 CROSS_COMPILE ,将其对应的交叉编译⼯具链路径指定上⾯那个 CROSS_COMPILE = /opt/usr/local/arm/4.3.2/bin/arm-linux- 编译配置适⽤于 128M 内存开发板的 config make forlinx_nand_ram128_config make clean make 编译配置适⽤于 256M 内存开发板的 config make forlinx_nand_ram256_config make clean make 编译成功后,将在 uboot1.1.6 ⽬录下⽣成名为 u-boot.bin 的⼆进制⽂件。
android 系统编译 流程 原理
android 系统编译流程原理Android系统编译流程及原理Android系统是目前全球最流行的移动操作系统之一,而其编译过程是实现系统构建的关键步骤。
本文将介绍Android系统的编译流程及其原理,以帮助读者更好地理解Android系统的工作原理。
一、概述Android系统的编译过程主要包括源代码的获取、构建环境的配置、编译源代码、生成系统镜像等几个主要步骤。
整个编译过程通常需要一台性能较好的计算机来完成。
二、源代码的获取要编译Android系统,首先需要从官方网站或其他渠道获取到Android源代码。
Android源代码以Git的形式进行管理,可以通过Git命令来获取最新的源代码。
三、构建环境的配置在开始编译前,需要配置好编译环境。
首先需要安装Java Development Kit(JDK),并设置好相应的环境变量。
然后需要安装Android SDK,以及Android Build Tools等编译工具。
四、编译源代码编译源代码是整个编译过程的核心步骤。
Android系统的源代码使用Makefile进行管理和编译。
Makefile是一种构建工具,用于描述源代码的依赖关系和编译规则。
在编译过程中,Makefile会根据源代码的依赖关系,自动判断哪些文件需要重新编译。
这样可以避免重复编译和提高编译效率。
编译源代码的过程通常包括以下几个步骤:1. 初始化:Makefile会进行一些初始化操作,例如设置编译参数、创建输出目录等。
2. 依赖检查:Makefile会检查源代码的依赖关系,判断哪些文件需要重新编译。
3. 编译源文件:Makefile会根据源代码的编译规则,将源文件编译成目标文件。
4. 链接目标文件:Makefile会将编译得到的目标文件链接成可执行文件或库文件。
5. 生成系统镜像:最后,Makefile会将编译得到的可执行文件、库文件等打包成系统镜像,以供安装到设备上运行。
五、生成系统镜像在编译完成后,就可以生成Android系统的系统镜像了。
android2.3单独编译framework尝试
android2.3单独编译framework尝试android2.3单独编译framework 尝试2011-04-20 17:46root@zhupan-desktop:~/android/android2.3# . build/envsetup.shincluding device/htc/dream/vendorsetup.shincluding device/htc/passion/vendorsetup.shincluding device/htc/sapphire/vendorsetup.shroot@zhupan-desktop:~/android/android2.3# cd frameworks/root@zhupan-desktop:~/android/android2.3/frameworks# mmm====================================== ======PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=2.2.1TARGET_PRODUCT=genericTARGET_BUILD_VARIANT=engTARGET_SIMULATOR=TARGET_BUILD_TYPE=releaseTARGET_BUILD_APPS=TARGET_ARCH=armHOST_ARCH=x86HOST_OS=linuxHOST_BUILD_TYPE=releaseBUILD_ID=MASTER====================================== ======make:进入目录'/root/android/android2.3'Install: out/host/linux-x86/bin/aprioriInstall: out/host/linux-x86/bin/soslimInstall: out/target/product/generic/system/lib/libdl.soInstall: out/target/product/generic/system/lib/libc.sotarget Non-prelinked: libc_malloc_debug_leak (out/target/product/generic/symbols/system/lib/libc_malloc_de bug_leak.so)Install:out/target/product/generic/system/lib/libc_malloc_debug_leak. sotarget Non-prelinked: libc_malloc_debug_qemu (out/target/product/generic/symbols/system/lib/libc_malloc_de bug_qemu.so)Install:out/target/product/generic/system/lib/libc_malloc_debug_qem u.soInstall: out/target/product/generic/system/lib/libm.soInstall: out/target/product/generic/system/lib/libstdc++.so Install:out/target/product/generic/system/lib/libthread_db.so target Non-prelinked: linker (out/target/product/generic/symbols/system/bin/linker) Install: out/target/product/generic/system/bin/linkerInstall: out/host/linux-x86/bin/aaptInstall: out/host/linux-x86/framework/apicheck.jarInstall: out/host/linux-x86/framework/clearsilver.jarInstall: out/host/linux-x86/framework/droiddoc.jarInstall: out/host/linux-x86/lib/libneo_util.soInstall: out/host/linux-x86/lib/libneo_cs.soInstall: out/host/linux-x86/lib/libneo_cgi.soInstall: out/host/linux-x86/lib/libclearsilver-jni.so Copying:out/target/common/obj/JAVA_LIBRARIES/core_inter。
android browser用法
Android Browser是Android操作系统自带的网络浏览器。
以下是使用Android Browser的一些基本步骤:
1. 打开Android Browser应用程序。
您可以在主屏幕或应用程序抽屉中找到它。
2. 浏览网页:在地址栏中输入您想要访问的网址,然后按“Go”按钮或按下“Enter”键。
浏览器将加载并显示相应的网页内容。
3. 导航:使用浏览器提供的导航工具浏览网页。
您可以使用屏幕上的滚动条、缩放按钮或手势来浏览网页。
4. 添加书签:在浏览器中,您可以添加您喜欢的网页作为书签以便快速访问。
要添加书签,请在浏览器的菜单中找到“书签”选项,然后选择“添加书签”并输入书签的名称和网址。
5. 打开新标签页:在浏览器中,您可以打开一个新的标签页来浏览其他网站。
要打开新标签页,请在浏览器的主界面上按下“新建标签”按钮或使用菜单中的“新建标签”选项。
6. 保存网页:如果您想保存某个网页以便稍后离线访问,请在浏览器中选择“菜单”选项,然后选择“保存网页”。
然后,您可以选择将网页保存为书签、发送给朋友或保存为离线文件。
7. 清除浏览记录:如果您不想让别人看到您的浏览历史记录,请在浏览器中选择“菜单”选项,然后选择“清除浏览数据”。
这些是使用Android Browser的一些基本步骤。
请注意,浏览器的
功能可能会因Android版本和设备型号而有所不同。
android浏览器源代码
/bbs/home.php?mod=invite&id=62&c=apzrou /bbs/home.php?mod=invite&id=61&c=akkahk /bbs/home.php?mod=invite&id=60&c=zhhsor /bbs/home.php?mod=invite&id=59&c=4ukha8 /bbs/home.php?mod=invite&id=58&c=lgg60m /bbs/home.php?mod=invite&id=57&c=ymgm3m /bbs/home.php?mod=invite&id=56&c=n5zhht /bbs/home.php?mod=invite&id=55&c=huukbh /bbs/home.php?mod=invite&id=54&c=8yrc1c /bbs/home.php?mod=invite&id=53&c=stf115package com.explorer;import static com.mime.MIME.MIME_MapTable;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream; import java.util.ArrayList;import java.util.Arrays;import parator;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent;import .Uri;import android.os.Bundle;import android.os.Environment; import android.os.Handler;import android.os.Looper;import android.os.Message;import youtInflater; import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;import com.file.R;public class MainActivity extends Activity implements OnClickListener, OnItemClickListener, OnItemLongClickListener { private TextView currentDir;private Button btnC;private Button btnE;private ListView listView;private File rootDir;private File copyPath;private String flag;private String startFilePath;private String desFilePath;private List<File> fileList = new ArrayList<File>();private ProgressDialog progressDialog;private int currentLen = 0;private long totaLength = 0;private Handler messageHandler;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.main);currentDir = (TextView) findViewById(R.id.currentDir);// fileName = (TextView) findViewById();btnC = (Button) findViewById(R.id.btnC);btnE = (Button) findViewById(R.id.btnE);btnC.setOnClickListener(this);btnE.setOnClickListener(this);listView = (ListView) findViewById(R.id.listView);listView.setOnItemClickListener(this);listView.setOnItemLongClickListener(this);//得到当前线程的Looper实例,由于当前线程是UI线程也可以通过Looper.getMainLooper()得到messageHandler = new MessageHandler(Looper.myLooper());if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { rootDir = Environment.getExternalStorageDirectory();} else {rootDir = Environment.getRootDirectory();}loadFiles(rootDir);}//自定义Handlerclass MessageHandler extends Handler {public MessageHandler(Looper looper) {super(looper);}@Overridepublic void handleMessage(Message msg) {loadFiles(new File(currentDir.getText().toString()));}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.menu, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if (item.getItemId() == R.id.newFile) {LayoutInflater factory = LayoutInflater.from(MainActivity.this);final View view = factory.inflate(yout.rename, null);AlertDialog d = new AlertDialog.Builder(MainActivity.this).setCancelable(true).setMessage("文件夹名") .setView(view).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String dirName = ((EditText) view.findViewById(R.id.rename)).getText().toString();String newFile = currentDir.getText().toString() + "/" + dirName;if (new File(newFile).exists()) {Toast.makeText(MainActivity.this, "文件夹已存在", Toast.LENGTH_LONG).show();return;}File f = new File(currentDir.getText().toString(), dirName);f.mkdir();}}).create();d.show();} else if (item.getItemId() == R.id.about) {Dialog d = new AlertDialog.Builder(MainActivity.this).setTitle("文件浏览器1.0beta").setMessage("本程序由劲松Alex制作") .setPositiveButton("确定", null).create();d.show();} else if (item.getItemId() == R.id.exit) {MainActivity.this.finish();}return true;}/*** 加载当前文件夹列表* */public void loadFiles(File dir) {List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();if (dir != null) {// 处理上级目录if (!dir.getAbsolutePath().equals(rootDir.getAbsolutePath())) {Map<String, Object> map = new HashMap<String, Object>();map.put("file", dir.getParentFile());map.put("name", "上一级目录");map.put("img", R.drawable.folder);list.add(map);}currentDir.setText(dir.getAbsolutePath());File[] files = dir.listFiles();sortFiles(files);if (files != null) {for (File f : files) {Map<String, Object> map = new HashMap<String, Object>();map.put("file", f);map.put("name", f.getName());map.put("img", f.isDirectory() ? R.drawable.folder: (f.getName().toLowerCase().endsWith(".zip") ? R.drawable.zip : R.drawable.text));list.add(map);}}} else {Toast.makeText(this, "目录不正确,请输入正确的目录!", Toast.LENGTH_LONG).show();}ListAdapter adapter = new SimpleAdapter(this, list, yout.item, new String[] { "name", "img" }, new int[] {, R.id.icon });// listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);listView.setAdapter(adapter);}/*** 排序文件列表* */private void sortFiles(File[] files) {Arrays.sort(files, new Comparator<File>() {public int compare(File file1, File file2) {if (file1.isDirectory() && file2.isDirectory())return 1;if (file2.isDirectory())return 1;return -1;}});}/*** 打开文件** @param file*/private void openFile(File file) {Intent intent = new Intent();intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 设置intent的Action属性intent.setAction(Intent.ACTION_VIEW);// 获取文件file的MIME类型String type = getMIMEType(file);// 设置intent的data和Type属性。
Android自学笔记:Android2.3源码下载
Android自学笔记:Android2.3源码下载(针对Windows环境)文章分类:移动开发我最近在自学Android,当遇到问题时也只能看看开发文档,或者上网查资料解决,远有直接看源码来得直接。
国内倒是有个Android镜像网站,但不提供下载源码的链接;苦于没有下源码的地方,一气之下,上网搜索所有关于下载Android源码的方法和资料,看得朦朦胧胧的,不过还是终得正果。
下面总结下载Android源码的整体过程(其实非常Easy!):一、前期准备1.下载Msysgit工具Windows环境下的Git客户端程序,下载地址:/p/msysgit/参见下图:2.安装Msysgit工具参见下图:3.在磁盘上建立一个文件夹存放Git工具下载下来的Android源码,参见下图:4.打开Git命令行窗口右键点击刚刚新创建的文件夹,参见下图:Git命令行窗口,参见下图:二、开始下载1.访问Android源码下载网站这个网站于SVN+APACHE那样的管理方式,访问地址:/参见下图:这一步很重要,再往下继续之前,先熟悉一下这个网站;尤其是上图红框部分,它们都是Android所属项目的路径。
你可以随便点击一个进去看看,里面还有链接,参见下图:可以让你查看它的下级目录,参见下图:为什么要说明这个?我一开始不知道有这个功能,找了半天才找到我想要的;因此以后想下载其它项目的源码,通过这个功能我们就会很容易地下载了。
2.在Git命令行中输入下载命令我们先来看下载命令语法,参见下图:解释说明:上图红框中“+”后面的project path就是上一步看到的那一栏子路径。
观察上一步的页面,可以知道Android的项目源码分散在各处;所以要有针对性去下载我们所需要的源码,这才是王道。
不过我找了老半天才找到我急需要的Android应用程序框架源码,位置在platform/frameworks/base.git。
由此得出,下载命令为:Java代码1.git clone git:///platform/frameworks/base.git参见下图:三、下载完成1.git命令行窗口状态参见下图:注意:别忘了要在命令行中打“exit”命令退出窗口,养成良好习惯。
Android浏览器Browser二次开发
Android浏览器Browser二次开发Android 浏览器Browser二次开发(一)更改浏览器设置中的搜索引擎浏览器Android搜索引擎YahooXML因XXXX对浏览器业务的定制需求,需要基于Android 浏览器应用进行二次开发,下面结合Browser源码,将开发过程中遇到的一些问题与经验和大家共享下。
(XXXX部分涉及到信息安全,不便透露)第一章更改浏览器设置中的搜索引擎1. 需求将浏览器设置中的搜索引擎更改为XXXX, 谷歌搜索,百度搜索。
默认XXXX选中。
2. 分析源码我们先找到浏览器的设置界面代码,com.android.browser.BrowserPreferencesPage.java 构造界面部分代码在onCreate函数中protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// Load the XML preferences fileaddPreferencesFromResource(R.xml.browser_preferences);这里我们看到它是通过xml配置文件来构造界面的,这个文件存放在工程下的res/xml/browser_preferences.xml。
里面对于search engine是这样定义的:<com.android.browser.search.searchenginepreference< bdsfid="77"p=""></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_su mmary"android:dialogTitle="@string/pref_content_search_engine" /> 我们继续顺藤摸瓜,找到SearchEnginePreference.java 这里面对于search engin又是通过SearchEngines 类静态方法getSearchEngineInfos来获取的,这个方法实现如下代码:public static List getSearchEngineInfos(Context context) {ArrayList searchEngineInfos = new ArrayList();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/search_engines.xml 中。
android2.3_ubuntu编译环境配置说明
1. android2.3-64bit ubuntu编译环境配置及源码编译说明1.ANDROID 编译环境对JDK版本及操作系统位数的要求:JDK 版本要求UBUNTU 位数2.2及更早版本 1.5 32bit2.3版本 1.6 64bit2. ANDROID 2.3 64 bit ubuntu编译环境搭建步骤:$ sudo apt-get update$ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libreadline5-dev sharutils uboot-mkimage default-jdksudo apt-get install libc6-dev-i386 gcc-multilib g++-multilib lib32ncurses5-dev ia32-libslib32readline5-dev lib32z-dev注:虚拟机上安装ubuntu不适用。
3. ANDROID 2.3 编译步骤a.解压ANDROID 2.3 源码包b.配置宏开关文件device/rockchip/sdkDemo/BoardConfig.mk(可使用默认值),然后执行:make prebuild(此步骤只有修改BoardConfig.mk 文件后,才需要执行)make./mkimage.sh以上步骤即可生成rockdev/Image 目录下生成以下4 个目标固件boot.img misc.img recovery.img system.img具体如何使用以上img 进行烧写,请参见《RK2908SDK 板固件烧写手册v1.1.doc》4.LINUX KERNEL 编译步骤a. 执行make rk29_sdk_defconfigb. 执行make kernel.img2.android 2.3-32bit ubuntu 编译说明直接执行make将出错提示如下信息:"You are attempting to build on a 32-bit system"修改如下:Ø$ vim build/core/main.mk找到:ifneq (64,$(findstring 64,$(build_arch)))改为:ifneq (i686,$(findstring i686,$(build_arch)))$(warning ************************************************************)$(warning You are attempting to build on a 32-bit system.)$(warning Only 64-bit build environments are supported beyond froyo/2.2.)$(warning ************************************************************)$(error stop)endifØ修改LOCAL_CFLAGSexternal/clearsilver/cgi/Android.mk,external/clearsilver/java-jni/Android.mk,external/clearsilver/util/Android.mk,external/clearsilver/cs/Android.mk找到:LOCAL_CFLAGS += -m64LOCAL_LDFLAGS += -m64改为:LOCAL_CFLAGS += -m32LOCAL_LDFLAGS += -m32常见问题汇总:a: issue :host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_util.cIn file included from /usr/include/features.h:378,from /usr/include/string.h:26,from external/clearsilver/java-jni/j_neo_util.c:1:/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: 没有那个文件或目录make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libclearsilver- jni_intermediates/j_neo_util.o]错误"解决方法:sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6b: issue: host SharedLib: libneo_util (out/host/linux-x86/obj/lib/libneo_util.so)/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.3.4/libstdc++.so when searching for-lstdc++/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.3.4/libstdc++.a when searching for -lstdc++ /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.3.4/libstdc++.so when searching for -lstdc++/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.3.4/libstdc++.a when searching for -lstdc++ /usr/bin/ld: cannot find -lstdc++collect2: ld returned 1 exit statusmake: *** [out/host/linux-x86/obj/lib/libneo_util.so] Error 1解决方法:apt-get install g++-multilibc :issue: frameworks/base/core/java/android/app/ListActivity.java:319: inconvertible typesfound : android.widget.AdapterView<capture of ?>required: android.widget.ListViewonListItemClick((ListView)parent, v, position, id);^Note: Some input files use or override a deprecated API.Note: Recompile with -Xlint:deprecation for details.Note: Some input files use unchecked or unsafe operations.Note: Recompile with -Xlint:unchecked for details.解决方法:使用jdk1.6环境:apt-get install sun-java5-jdk附录:1.Google 发布的Gingerbread 编译指南详情见/source/download.html中关于Ubuntu Linux (64-bit)有如下说明:Ubuntu Linux (64 Ubuntu Linux (64 Ubuntu Linux (64 Ubuntu Linux (64----bit) bit) bit) bit)The Sun JDK is no longer in Ubuntu's main package repository. In orderto download it, you need to add the appropriate repository and indicateto the system which JDK should be used.Java 6: for Gingerbread and newersudo add-apt-repository "deb / lucidpartner"sudo add-apt-repository "deb-src /ubuntulucid partner"sudo apt-get updatesudo apt-get install sun-java6-jdksudo update-java-alternatives -s java-6-sunJava 5: for Froyo and oldersudo add-apt-repository "deb /ubuntu dappermain multiverse"sudo add-apt-repository "deb /ubuntudapper-updates main multiverse"sudo apt-get updatesudo apt-get install sun-java5-jdksudo update-java-alternatives -s java-1.5.0-sunTo set up your development environment, install the following requiredpackages:$ sudo apt-get install git-core gnupg flex bison gperf build-essentialzip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-devlib32readline5-dev lib32z-devYou might also want Valgrind, a tool that will help you find memory leaks,stack corruption, array bounds overflows, etc.Running Linux in a virtual machine Running Linux in a virtual machine Running Linux in a virtual machine Running Linux in a virtual machineIf you are running Linux in a virtual machine, you will need at least 1.5GBof RAM and 10GB or more of disk space in order to build the Android tree.。
Android编译过程总结及android中各种img文件的作用以及系统启动过程
Android编译过程总结及android中各种img文件的作用以及系统启动过程编译环境:ubuntu 10.04(或者更高)(windows平台目前不被支持)本文以编译android2.3为例,64位操作系统1、编译环境的准备(1)确保安装有ubuntu系统或者虚拟机(2)安装JDK1.6(对于Android2.3以上代码)$ sudo add-apt-repository "deb/ lucid partner"$ sudo add-apt-repository "deb-src/ubuntu lucid partner"$ sudo apt-get update$ sudo apt-get installsun-java6-jdk(3)安装一些需要软件包$ sudo apt-get install git-coregnupg flex bison gperf build-essential \zip curl zlib1g-dev libc6-devlib32ncurses5-dev ia32-libs \x11proto-core-dev libx11-devlib32readline5-dev lib32z-dev \libgl1-mesa-dev g++-multilibmingw32 tofrodos(4)安装repo$ git clonegit:///tools/repo.git$ mkdir ~/bin$ cp repo-script/repo~/bin$ vim ~/.bashrc,将~/bin加入PARH环境变量,如:$ exportPATH=~/bin:$PATH保存后,同步更新:source~/.bashrc(5)设置git执行以下语句$git config "你的名字"$git config --global user.email"你的email地址"(6)同步源代码1)创建工程目录:$ mkdir myandroid$ cd myandroid2)repo初始化以及同步代码$repo init ****************.x.xx:git库名/manifest.git -b 主分支名在此过程中需要输入名字和email地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
rm -r /data/data/com.android.browser //删除其数据目录
exit
adb uninstall com.android.browser //卸载包,删除其其他遗留信息
现在可以打断点,启动调试了。如果需要跟到添加的库的代码,可以attach到对应的源代码
4.android2.3\out\target\common\obj\JAVA_LIBRARIES\core_intermediates\class.jar
以上库添加完成后,需要在Order and Export选项卡中调整库的位置,确保以上库在Android 2.3.1库之前
现在编译应该就没有错误了。
2.android2.3\out\target\common\obj\JAVA_LIBRARIES\android-common_intermediates\class.jar
3.android2.3\out\target\common\obj\APPS\Browser_intermediates\class.jar
该browser项目会有很多项目,因为依赖若干android源码中的类(androidsdk中未提供)
本项目需在build path新增加4个lib(根据代码中的错误提示和android源代码分析),分别如下:
1.android2.3\out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\class.jar
三.删除模拟器中自带的Browser
因为需要调试我们自己编译的browser,故需要删除系统自带的Browser程序,否则无法启动调试(签名错误)。
在cmd下执行以下命令 ('//' 为注释信息,不用输入)
adb shell
mount -o remount,rw / /system //将system挂载为可读写
一.开发环境
android2.3源代码
eclipse3.6 adt
二.建立eclipse项目
将android2.3源代码目录中browser复制一份
切换eclipse工作区间到另外一个目录,防止与原来的android源代码项目中的browser冲突
eclipse 新建一个android源代码项目,源代码目录指向复制出的browser的目录