android 源码开发 关于编译等小知识点总结

  1. fastboot flash boot out/target/product/generic/boot.img不管用,提示< waiting for device >
       原因查找:
       用fastboot命令查看设备提示无权限,如下:
          $ fastboot -l devices
          no permissions         fastboot usb:2-1.3
       于是知道是因为权限问题,是fastboot没有权限, 解决步骤:
       1. 将fastboot的所有者属性改成root
          用which fastboot命令找到fastboot所在的目录,然后进入此目录;再用命令chown改其属性:
          sudo chown root:root fastboot
       2. 将其权限更改一下:
          sudo chmod +s fastboot
       再运行
       fastboot flash boot out/target/product/generic/boot.img就正常了 :
       sending ‘boot‘ (6520 KB)...
       OKAY [  0.207s]
       writing ‘boot‘...
       OKAY [  0.311s]
       finished. total time: 0.518s
  2. ubuntu系统下,adb命令会依赖很多包,因此如果没有安装adt工具包,且在源码目录下adb命令不可用时,可以先确保android的源码可以进行编译,可以编译后,在编译出来的out目录中是有adb命令的。
  3. 在服务器上进行编译时,出现了找不到eabi-arm-gcc的错误,这部分打印信息是在build/envsetup.sh中写入的,然后退出服务器,再次登陆问题解决......
  4. recovery模式下,找不到adb设备,不能进行adb操作。同一个终端,在其他的ubuntu台式机上是可以的,确定了是ubuntu的配置问题。
        解决:修改 /etc/udev/rules.d/51-android.rules
        SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0600"
        改为:
        SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="user"
  5. recovery模式下,直接adb push的方式替换/sbin/recovery是不可行的,执行替换成功后,重启后,recovery仍然被替换为之前的,只能使用生成recovery.img,然后使用fastboot flash recovery recovery.img的方式进行升级。因为recovery下的文件系统是ramdisk类型的,掉电丢失。
  6. [email protected]:~/workspace/project/rdadroid-5.1.1_r13$ fastboot devices
        no permissions    fastboot
        [email protected]:~/workspace/project/rdadroid-5.1.1_r13$ which fastboot
        /home/guofengwan/workspace/project/rdadroid-5.1.1_r13/out/host/linux-x86/bin/fastboot
        [email protected]:~/workspace/project/rdadroid-5.1.1_r13$
     
        另外启动了一个窗口:
        [email protected]:~$ fastboot devices
        dragon2012    fastboot
        [email protected]:~$ which fastboot
        /home/guofengwan/environment/adt-bundle-linux-x86_64-20140702/sdk/platform-tools/fastboot
  7. recovery模式下,adb shell进入后,发现是非root用户,并且运行su命令失败,退出后,adb root问题解决。
  8. user版本的android代码,每次修改,如果单独mm一个jar包或者命令时,会导致新生成的jar包文件和之前的img文件中的签名不一致,因此一但进行了修改,需要整个源码make一遍。
    在android源码中,新添加一个命令,进入该命令的目录mm后,会生成到out目录下的相应的/system/bin/目录中,再编译源码,命令就会生成到system.img文件中,但是如果提交代码的话,
    在服务器上不会进入到该命令的目录进行mm操作的,因此需要修改所编译的target对应的device.mk文件,添加到device.mk中。
  9. android系统调试过程中,native代码出现错误,System标签;java代码出现错误,AndroidRuntime标签。
  10. adb shell dumpsys window displays可以获取android的屏幕分辨率等信息,

    通过cat  /proc/meminfo命令查看内存大小。。

  11. adb shell service list 可以列出系统的service。
  12. make snod将out目录里面的文件打包成img。
  13. recovery模式下,使用framebuffer来显示界面,获取屏幕显示的图像内容:
    adb root
    adb shell cat /dev/graphics/fb0 > 2.data
    使用gimp打卡2.data,根据实际情况设置RGB8888或者RGB565等像素格式,长度和宽度的分别率.
  14. 如果在源码中,由于一个模块编译失败,但是又不想因为它,导致整个android源码编译不通过,可以在build/core/envsetup.mk文件中,添加SCAN_EXCLUDE_DIRS := 这个模块的名字。可以使其不被编译。前提是这个模块的编译与否对其他模块没有影响。
时间: 2024-08-01 22:40:08

android 源码开发 关于编译等小知识点总结的相关文章

Android源码开发利器——Java源码调试(基于4.1.2)

原文地址:http://blog.csdn.net/jinzhuojun/article/details/8868038 调试Android Java源码 草帽的后花园--Neo 写在之前的话:这里主要是以调试Java源码为主,应该说是在system_process之后的源码,这对于调试和修改frameworks层的人来说真是一个利器,但至于为什么在system_process之后,我还在分析,如果有结果我会更新此文章,并正在尝试调试C++的代码,就是native中的代码,如果这个可行那将会大大

完整版linux下android源码下载、编译、模拟器启动运行

一.环境说明: 1.VMware版本:8.0.3 build-703057 2.liunx系统:Ubuntu10.10 3.jdk:sun-java6-jdk 二.Ubuntu 10.10更新源列表 由于??Ubuntu 10.10版本的源已经过期了,所以,需要对其进行更新,Ubuntu 10.10 已经发布了,下面提供更新源方法与更新源列表地址: 1.sudo gedit /etc/apt/sources.list     编辑你的源列表,将原来的内容全部删除,添加下面的源,复制到你的列表中,

Android源码下载和编译过程

这是我在编译android源码时整理记录的编译步骤和错误解决方法,期间参考了一些网上的博客和教程. 第一步: 安装ubuntu12.04,分配一盘空间50G,2G内存.如果分配1G内存编译时将报错.(我是在虚拟机中安装ubuntu,分配了50G空间,编译源码需要空间较大,建议分配50G或更多,使用wubi安装最大只能分配30G). 第二步: 安装JDK,此处选用JDK版本为JDK6-6u29 32位,下载链接http://www.oracle.com/technetwork/java/javas

Android源码开发笔记

Android 源码获得与编译 http://blog.csdn.net/luoshengyang/article/details/6559955 在Android源码中创建应用程序工程 http://blog.csdn.net/luoshengyang/article/details/6580267 如何单独编译android源代码中的模块 http://blog.csdn.net/luoshengyang/article/details/6566662

android源码下载以及编译自己的ROM

android源码下载以及编译自己的ROM 最近发现kernel.org被墙了,为什么这种网站也能被墙了? 要想下载源码的话,只能绕过去了.下面是我从网上搜索到的一些下载方法: ============================================================================================== 原文链接是:http://cache.baidu.com/c?m=9d78d513d98316ed05fa950e1a67a3716

第2章 Android源码下载及编译

在分析Android源码前,首先要学会如何下载和编译系统.本章将向读者完整的呈现Android的源码的下载流程.常见问题以及处理方法,并从开发者的角度来理解如何正确地编译出Android系统(包括原生态系统和定制设备).后面,我们将在此基础上深入到编译脚本的分析中.以"庖丁解牛"的精神来还原一个庞大而严谨的Android编译系统. 2.1 Android源码下载指南 2.1.1 基于Repo和git的版本管理 Git是一种分布式的版本管理系统,最初被设计用于linux内核的版本控制.本

Ubuntu 14.04.1 配置 Android 源码开发环境

# Ubuntu 14.04.1 1.更新源: sudo apt-get update 安装vim工具: sudo apt-get install vim 2.设置Android SDK Tools等环境 我的Android SDK解压在了/home/rengh/adt-bundle/目录下,So: 增加全局变量: sudo vim /etc/profile 添加以下内容: # Set Android SDK enviroment. ANDROID_HOME=/home/rengh/adt-bu

Android源码开发笔记 -- Sound Settings 音量调整相关

在Android8.0的Sound Settings中可以看到调整音量分为三种:Media/Alarm/Ring 当用户点击设置时,设置的值范围分别为: Media 0--15,Alarm 0--7,Ring 0--7 布局文件位于:packages/apps/Settings/res/xml/sound_settings.xml 实现文件位于:packages/apps/Settings/src/com/android/settings/notification/SoundSettings.j

菜鸟起飞:第一次在ubuntu上编译android源码

算一算自己干android开发,还差那么几个月就要满两年了,可是自己连android源码都没有编译过一次,想想真是说不过去,就想想编译一次,中间还真是遇见了不少的问题,在此写一篇博客供大家参考. 切记:每个人的环境都不相同,可能我的编译过程可以成功,但是对于你的就不成功,在遇到问题的时候要具体对待,具体解决,关键就在于恒心与毅力. -----------------------------------------------------------------------------------