编译

Android编译工具链:Jack+ninja

问题:Jack没法多用户同时编译,

Google( Communication error with Jack server ):https://code.google.com/p/android/issues/detail?id=194027

编译失败信息:

No Jack server running. Try 'jack-admin start-server'
ninja: build stopped: subcommand failed.
18:24:23 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1

#### make failed to build some targets (02:01:51 (hh:mm:ss)) ####

只要有一个人已经编译过Android的code了,其他人就没法编译了,因为编译完了jack的端口也是不会释放的。

如果编译失败 可以通过 jack-admin list-server 看当前是否有人已占用了server的jack端口

这个时候可以要求占有者 通过 jack-admin kill-server来释放这个端口。

解决办法:

jack 默认的 service port是8076,admin port是8077

1. 修改vi ~/.jack-settings 文件中两个端口号

SERVER_PORT_SERVICE=8076
SERVER_PORT_ADMIN=8077

2. 修改 vi ~/.jack-server/config.properties 文件中两个端口号(这个文件在编译一次后会自己生成,如果没有这个文件,先编译一次源码,报错后再修改)(端口号改成的数值不能和其他人一样,否则会有问题)

jack.server.service.port=xxxx

jack.server.admin.port=xxxx

1和2修改的端口号要统一

修改后通过jack-admin list-server,就可以看到同时有多个jack server了。

首先确认编译的java版本,设置环境变量(source build/envsetup.sh),lunch对应的版本(user版本不支持root权限,开发者一般使用user-debug版本),make otapackage -jx(x表示使用多少线程资源编译)

烧录

用两个接头以及一条四根的排线制作一个串口板连接线. 连线时要保证引脚一一对应, 即开发板上的GND连接到串口板的GND, 开发板TX连接到串口板TX, 开发板RX连接到串口板RX, 开发板VCC连接到串口板VCC.
注 : 部分板子焊接/布线等可能存在差异, 必要时可尝试交换TX/RX看是否可以正常使用串口.

开发板重新烧写系统镜像:

安装CP2102串口驱动,

1、“reboot”命令系统重启,使用 “Enter or CTRL+C”中断在U-boot阶段。
2、使用“store scrub 0”擦除Flash(这个指令会擦除nand原厂标识,谨慎使用)或者在U-boot下输入"update"命令,此时在设备管理器中会出现一个名为libusb-win32 Usb Devices的设备组

3、使用烧写线连接开发板与PC,使用USB烧写工具进行镜像烧录,烧录完成后重启即可。

笔者使用“store scrub 0”擦除Flash后进行第三步出现过USB烧录工具检测不到开发板的问题,并且开发板上电一直是亮红灯,表示当前已经是空板状态。(挺吓人的,意为还要使用JTAG工具重新烧录初始化镜像文件),后面电脑重启,再连接USB烧录线,打开USB烧录工具,结果检测到连接成功,直接烧录系统镜像即可。

调试

使用外接显示器进行系统调试时,即便有遥控器并连接鼠标,仍不便进行编辑框输入,可以使用adb shell指令“input”辅助调试。

input
Usage: input [<source>] <command> [<arg>...]

The sources are:
      keyboard
      mouse
      joystick
      touchnavigation
      touchpad
      trackball
      dpad
      stylus
      gamepad
      touchscreen

The commands and default sources are:
      text <string> (Default: touchscreen)
      keyevent [--longpress] <key code number or name> ... (Default: keyboard)
      tap <x> <y> (Default: touchscreen)
      swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      press (Default: trackball)
      roll <dx> <dy> (Default: trackball)

填充编辑框命令示例:input text This is a Test String.

回到主页面可以使用指令“input keyevent 3”
几个最常用的KEYCODE如下:
3 -->  "KEYCODE_HOME"主页键
4 -->  "KEYCODE_BACK" 返回键
19 -->  "KEYCODE_DPAD_UP" 导航键-上
20 -->  "KEYCODE_DPAD_DOWN" 导航键-下
21 -->  "KEYCODE_DPAD_LEFT" 导航键-左
22 -->  "KEYCODE_DPAD_RIGHT"导航键-右
62 -->  "KEYCODE_SPACE" 空格键
66 -->  "KEYCODE_ENTER" Enter键,确认
67 -->  "KEYCODE_DEL" 回退键,删除
82 -->  "KEYCODE_MENU"菜单键

更多KEYCODE按键作用可参照https://blog.csdn.net/feizhixuan46789/article/details/16801429

通过input tap命令模拟触摸屏幕:input tap 600 800  在屏幕X坐标600,Y坐标800触发点击事件。

input swipe模拟滑动事件,input swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen),需要将起始的坐标传入。

input swipe 600 800 300 800(向左滑动)input swipe 300 800 600 800 (向右滑动)

adb shell命令“am”也可以做许多操作:

拨打电话:am start -a android.intent.action.CALL -d tel:10086

打开网站:am start -a android.intent.action.VIEW -d http://www.baidu.com

播放音视频:am start -a android.intent.action.VIEW -d   "file:///sdcard/Movies/欧若拉-张韶涵.mp4" -t "video/*"

关机指令:poweroff

抓取后台应用运行日志信息:logcat -c;logcat

Android系统镜像编译、烧录及调试相关推荐

  1. tiny4412开发板Android篇_2基于tiny4412的Android系统的编译

    tiny4412开发板使用的android系统版本是android5.0.2,由友善之臂公司提供,下载网址: https://pan.baidu.com/s/1pnn6N8Wpsx8PISLmKT59 ...

  2. Android系统镜像之4种刷机方法(一键批量刷机)

    关注公众号后可以查看更多更详细的文章内容 原文链接 ​Android系统镜像刷机方法(一) Android系统镜像刷机方法(二) Android系统镜像刷机方法(三) Edxposed研究之Magis ...

  3. 全志平台Android系统的设备烧录Tina系统失败问题解决方法

    全志平台Android系统的设备烧录Tina系统失败问题解决方法 [适用范围] Tina 通用平台 [问题现象] 开发过程中会有开发板Android系统.Tina互刷的问题.实际操作中,经常会碰到烧录 ...

  4. Android系统反编译FrameWork层虚拟定位方法

    首次发帖,如有不规范的地方还望多多包涵 起因是因为需要做模拟定位的功能,最终是过金融类app的定位 ,root.框架分分钟被砍死 迫于无奈,直接从操作系统入手,反正hook也不过是hook那几个系统里 ...

  5. 关于Android的硬件抽象层添加进Android系统默认编译的问题

    这里主要是遇到两个问题:第一个是,自己编写的hal层源码怎么添加进Android的默认编译中去,也就是说在根目录执行make时,自己编写hal源码也会被编译.第二个问题是,编译完成后还要自动安装在指定 ...

  6. 替换Android系统镜像system.img的方法

    之前修改了Android的系统源码的framework层代码,定制ROM.通过make之后会生成三个镜像文件userdata.img.system.img.ramdisk.img三个文件.这个时候我们 ...

  7. Android系统开发之烧录开发板

    一.环境配置: 开发板接上USB线和串口线,打开DNW并配置好串口,给开发板上电后按reset键,紧接着按键盘的空格键,此时可输入如下命令. 1. fdisk -c 0 2. ext3format m ...

  8. 魅蓝3 官方android系统,魅蓝3 开启USB调试模式

    我们要将魅蓝3与电脑进行连接,就必须要打开魅蓝3系统的调试模式,不同的系统版本打开调试模式的方法有所不同,在这里我们就谈谈魅蓝3各种系统版本打开USB调试模式的方法. 1.针对Android 2.1- ...

  9. mac 编译android系统,mac 编译 Android 系统杂记

    挂载android分区 sudo hdiutil attach ~/android_code/android7.dmg.sparseimage -mountpoint /Volumes/android ...

最新文章

  1. Science:人工智能的发展离不开神经科学,先天结构或是下一个方向
  2. Redis发布带有“流式”数据类型的5.0版本
  3. FragmentTabHostUnderLineDemo【FragmentTabHost带下划线】
  4. 如何把Kubernetes config view里的base64编码过后的secret信息还原
  5. 【算法学习】整体二分
  6. jQuery学习笔记之jQuery的DOM操作
  7. java8 内存设置_Java 8内存分析
  8. 九章算术卷第一 方田
  9. Redmi 9将升级双频WiFi:定义2020入门机新标准
  10. Controller接口控制器(6)
  11. Quartz.net 定时调度CronTrigger时间配置格式说明
  12. 嵌入式系统——系统可靠度计算
  13. outlook客户端 outlook.com邮箱设置方法
  14. bzoj1627 / P2873 [USACO07DEC]泥水坑Mud Puddles
  15. 苹果x为什么总黑屏_苹果X突然黑屏重启怎么回事?教你强制重启方法
  16. 用户画像:标签化就是数据的抽象能力
  17. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器:DirectInput专场...
  18. 桌面上的IE图标不见了——解决方法
  19. 数学家的这些迷惑行为,最后都成了神操作
  20. 仿百度搜索框支持拼音 输入联想

热门文章

  1. MTK芯片技术资料大全,各个型号都有,包括原理图数据表等
  2. mysql 28000 远程_启用远程MySQL连接:错误1045(28000):拒绝用户访问
  3. 几何分布的期望公式的推导
  4. Win10 1809版本多用户远程登陆
  5. [unityshader]制作能量护盾以及简单互动
  6. hibernate: 用Disjunction和Conjunction构造复杂的查询条件
  7. 将Unity地形以Wavefront Obj格式导出
  8. pyinstaller 生成exe之后不报毒的终极方法(亲测可用)
  9. 计算机平面设计与工程论文,浅谈计算机平面设计和设计软件相互结合
  10. 计算机毕业设计 SSM+Vue消防管理系统 智慧消防系统 消防设备管理系统 消防知识宣传网站Java Vue MySQL数据库 远程调试 代码讲解