资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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

    我们提供的服务有:网站制作、成都网站制作、微信公众号开发、网站优化、网站认证、尼河口ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的尼河口网站制作公司
  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. guofengwan@guofengwan:~/workspace/project/rdadroid-5.1.1_r13$ fastboot devices
       no permissions   fastboot
       guofengwan@guofengwan:~/workspace/project/rdadroid-5.1.1_r13$ which fastboot
       /home/guofengwan/workspace/project/rdadroid-5.1.1_r13/out/host/linux-x86/bin/fastboot
       guofengwan@guofengwan:~/workspace/project/rdadroid-5.1.1_r13$

       另外启动了一个窗口:
       guofengwan@guofengwan:~$ fastboot devices
       dragon2012   fastboot
       guofengwan@guofengwan:~$ 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 := 这个模块的名字。可以使其不被编译。前提是这个模块的编译与否对其他模块没有影响。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:android源码开发关于编译等小知识点总结-创新互联
浏览路径:http://cdkjz.cn/article/didjgj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220