centos 7 服务器 纯命令行 安装 android 官方模

2019-07-22  本文已影响0人  伤脑筋orz
step1:安装java环境:略
step2:安装sdk环境:
#(1)下载sdk包
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
# (2)解压
unzip  /opt/sdk/sdk-tools-linux-4333796.zip
step3:下载模拟器的镜像和工具
#如果没有配置sdk的环境 那么到 sdk/tools/bin 目录下操作
#(1)查看可选项
./sdkmanage --list
#(2)下载选择的
./sdkmanager "system-images;android-24;default;armeabi-v7a" "patcher;v4" "build-tools;29.0.1" "emulator" "platform-tools" "platforms;android-24 "
step4:create 模拟器
./avdmanager create avd -k "system-images;android-24;default;armeabi-v7a" -n "24darm"
step5:配置模拟器运行环境
#运行emulator  检查依赖关系 
./emulator -avd 24darm
#可能会报依赖的错误
ldd 报错的.so
#ubuntu使用 apt-file search 依赖的.so  可以查到那个包里面可以安装 一个不行就换个。。
#centos yum whatprovides 依赖的.so 用之前需要安装yum-utils 

#一些so的安装方式
libX11.so.6  -> yum -y install libX11
libGL.so.1 -> yum install mesa-libGL
libXcomposite.so.1 -> yum install libXcomposite.x86_64
libXcursor.so.1 -> yum install libXcursor

#其中有一些包是在sdk/emulator/lib64 文件夹中 需要将其添加到系统公共库中
#在/etc/ld.so.conf.d/文件夹下新建 sdk.conf
touch /etc/ld.so.conf.d/sdk.conf
#添加路径
/opt/sdk/emulator/lib64
/opt/sdk/emulator/lib64/qt/lib
#使其生效
ldconfig
#建立软链接(/opt/sdk/emulator/lib64/qt/lib)
ln -sf libxkbcommon.so.0.0.0 libxkbcommon.so.0
step6:启动模拟器 无界面
nohup ./emulator -avd 24darm -gpu off -no-window > 24darm.log 2>&1 &

启动后使用命令exit退出  直接点x关闭会使模拟器关闭 nohup命令的关系

ps:一些其他的启动参数:
https://android-doc.com/tools/help/emulator.html
或者emulator -help 查看

step7:安装启动应用 pm am 略
step8:建立本地映射
#查看当前的模拟器
adb devices
#emulator-5554  device
#查看emulator的token
cat /root/.emulator_console_auth_token
#编辑映射
telnet localhost 5554
#在telnet中编辑
auth 查到的token
redir add tcp:宿主机端口:模拟器端口
#查看结果
redir list
#tcp:8080  => 8080 映射成功  
#此时在本地使用 localhost或者127.0.0.1  端口号已经可以访问模拟器中的服务
step9:添加上层网络的映射

因为telnet的映射只是映射到localhost 上层的网络 比如路由分给服务器的192.168.1.2,使用这种IP是无法访问到模拟器中的服务的。

使用nginx将192.168.1.2的上层网络 的端口在 代理到 localhost的本地端口 就可以访问到 模拟器中的服务了

一个新的错误

错误信息:
 ./emulator -avd 24darm
emulator: WARNING: encryption is off
emulator: INFO: QtLogger.cpp:68: Warning: could not connect to display  ((null):0, (null))


emulator: INFO: QtLogger.cpp:68: Info: Could not load the Qt platform plugin "xcb" in "../emulator/lib64/qt/plugins" even though it was found. ((null):0, (null))


Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb.
 ((null):0, (null))
emulator: INFO: QtLogger.cpp:68: Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb.
 ((null):0, (null))
解决方式:
上面使用的命令是  /tools/emulator
将命令替换为     /emulator/emulator
就可以解决这个问题
上一篇下一篇

猜你喜欢

热点阅读