0%

Android相关笔记

前言

记录Android研究的一些笔记,并非java相关,而是使用linux deploy在Android手机上启用linux相关的笔记

一、基本知识

1. 底层库的位置

1.1. gpu调用库

高通 adreno

1
2
3
4
5
6
7
8
9
10
11
12
# 算是android中的egl库,用来加载具体的实现
/system/lib/libEGL.so
# opengl具体实现的wrapper
/system/lib/libGLESv1_CM.so
/system/lib/libGLESv2.so
# opengl软件实现,即agl
/system/lib/egl/libGLES_android.so
# egl的实现
/vendor/lib/egl/libEGL_adreno.so
# opengl硬件实现
/vendor/lib/egl/libGLESv1_CM_adreno.so
/vendor/lib/egl/libGLESv2_adreno.so

2. 开发硬件相关

2.1. 摄像头

  • 根据网上查找的了解到,无法直接通过/dev/videox来使用摄像头,具体原因就不清楚了,需要使用ndk提供的接口

二、资源

1. apk集合网站

http://www.apkmirror.com/

三、adb命令

1. 文件传输

1
2
adb pull /sdcard/test.txt ./
adb push test.txt /sdcard

2. 端口转发

1
2
3
4
5
6
7
8
# 将本地8888端口的数据转发到手机的22端口上
=> adb forward tcp:8888 tcp:22
# 查看当前转发列表
=> adb forward --list
3e329821 tcp:8888 tcp:22

# 删除转发
=> adb forward --remove tcp:8888

3. 执行shell命令

1
=> adb shell "input tab 540 1080; input tab 540 1080; input tab 540 1080"

3.1. 常用的android命令

1
2
3
4
5
6
7
8
9
10
# 模拟点击事件,x从左上到右上,y从左上到左下
input tap x y
# 模拟滑动事件
input swipe x1 y1 x2 y2
# 模拟物理按键,keycode见下文
input keyevent keycode
# 输入文本信息
input text 'abc'
# 截屏
screencap -p /sdcard/screen.png

1) keycode

电话键
key说明value
KEYCODE_CALL拨号5
KEYCODE_ENDCALL挂机6
KEYCODE_HOMEHome3
KEYCODE_BACK返回4
KEYCODE_TASK最近任务键187
KEYCODE_VOLUME_UP音量+24
KEYCODE_VOLUME_DOWN音量-25
KEYCODE_VOLUME_MUTE扬声器静音164
KEYCODE_MUTE话筒静音91
KEYCODE_POWER电源26
KEYCODE_CAMERA相机27
KEYCODE_FOCUS焦点80
KEYCODE_NOTIFICATION通知83
基本输入
key说明value
KEYCODE_007
KEYCODE_118
KEYCODE_229
KEYCODE_3310
KEYCODE_4411
KEYCODE_5512
KEYCODE_6613
KEYCODE_7714
KEYCODE_8815
KEYCODE_9916
KEYCODE_AA29
KEYCODE_BB30
KEYCODE_CC31
KEYCODE_DD32
KEYCODE_EE33
KEYCODE_FF34
KEYCODE_GG35
KEYCODE_HH36
KEYCODE_II37
KEYCODE_JJ38
KEYCODE_KK39
KEYCODE_LL40
KEYCODE_MM41
KEYCODE_NN42
KEYCODE_OO43
KEYCODE_PP44
KEYCODE_QQ45
KEYCODE_RR46
KEYCODE_SS47
KEYCODE_TT48
KEYCODE_UU49
KEYCODE_VV50
KEYCODE_WW51
KEYCODE_XX52
KEYCODE_YY53
KEYCODE_ZZ54
KEYCODE_COMMA,55
KEYCODE_PERIOD.56
KEYCODE_GRAVE`68
KEYCODE_MINUS-69
KEYCODE_EQUALS=70
KEYCODE_LEFT_BRACKET[71
KEYCODE_RIGHT_BRACKET]72
KEYCODE_BACKSLASH\73
KEYCODE_SEMICOLON;74
KEYCODE_APOSTROPHE75
KEYCODE_SLASH/76
KEYCODE_SPACE空格62
控制键
key说明value
KEYCODE_DPAD_UP导航键上19
KEYCODE_DPAD_DOWN导航键下20
KEYCODE_DPAD_LEFT导航键左21
KEYCODE_DPAD_RIGHT导航键右22
KEYCODE_DPAD_CENTER导航键中间23
KEYCODE_TABTab61
KEYCODE_ENTEREnter66
KEYCODE_ALT_LEFTAlt57
KEYCODE_ALT_RIGHTAlt58
KEYCODE_SHIFT_LEFTShift59
KEYCODE_SHIFT_RIGHTShift60
KEYCODE_MOVE_HOME光标到开头122
KEYCODE_MOVE_END光标到结尾123
KEYCODE_PAGE_UP向上翻页92
KEYCODE_PAGE_DOWN向下翻页93
KEYCODE_ESCAPEEsc111
KEYCODE_BACKSPACEBackspace67
KEYCODE_FORWARD_DELDel112
KEYCODE_INSERTInsert124
KEYCODE_NUM_LOCKNum Lock90
KEYCODE_CAPS_LOCKCaps Lock115
KEYCODE_SCROLL_LOCKScroll Lock116
KEYCODE_F1F1131
KEYCODE_F2F2132
KEYCODE_F3F3133
KEYCODE_F4F4134
KEYCODE_F5F5135
KEYCODE_F6F6136
KEYCODE_F7F7137
KEYCODE_F8F8138
KEYCODE_F9F9139
KEYCODE_F10F10140
KEYCODE_F11F11141
KEYCODE_F12F12142
KEYCODE_ZOOM_IN放大168
KEYCODE_ZOOM_OUT缩小169
KEYCODE_MENU菜单82
KEYCODE_SEARCH搜索84
小键盘
key说明value
KEYCODE_NUMPAD_0096
KEYCODE_NUMPAD_1197
KEYCODE_NUMPAD_2298
KEYCODE_NUMPAD_3399
KEYCODE_NUMPAD_44100
KEYCODE_NUMPAD_55101
KEYCODE_NUMPAD_66102
KEYCODE_NUMPAD_77103
KEYCODE_NUMPAD_88104
KEYCODE_NUMPAD_99105
KEYCODE_NUMPAD_DIVIDE/111
KEYCODE_NUMPAD_MULTIPLY*106
KEYCODE_NUMPAD_SUBTRACT-109
KEYCODE_NUMPAD_ADD+107
KEYCODE_NUMPAD_DOT.110
KEYCODE_NUMPAD_ENTEREnter156
其他
1
2
3
4
5
6
7
8
9
10
11
12
13
14
KEYCODE_UNKNOWN = 0
KEYCODE_SOFT_LEFT = 1
KEYCODE_SOFT_RIGHT = 2
KEYCODE_STAR = 17
KEYCODE_POUND = 18
KEYCODE_CLEAR = 28
KEYCODE_SYM = 63
KEYCODE_EXPLORER = 64
KEYCODE_ENVELOPE = 65
KEYCODE_AT = 77
KEYCODE_NUM = 78
KEYCODE_HEADSETHOOK = 79
KEYCODE_PLUS = 81
KEYCODE_MEDIA_PLAY_PAUSE = 85