1- 安装ubuntu 16
2- 安装输入法
参考前半部分
3- 下载android 10 source code
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
在上面文章中下载的repo ,替换成下面的地址
#REPO_URL = 'https://gerrit.googlesource.com/git-repo'
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
repo tool 工具 下载地址:
链接:https://pan.baidu.com/s/1py_tH-3iyTg2NghwZJZt5A
提取码:vasi
ubuntu 更新git 版本,如果不对,可能出现git ls-remote 的错误
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
下载地址:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r45
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
repo sync
4-配置ubuntu16-samba
sudo apt-get install samba
vim /etc/samba/smb.conf
[share]
path = /home/liyihai/share
available = yes
browseable = yes
public = yes
writable = yes
建立share 目录
mkdir ~/share
chmod 777 ~/share
创建密码
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a liyihai
启动samba
sudo /etc/init.d/samba restart
5-ubuntu ssh 登录
查看是否有ssh server
dpkg -l|grep ssh
安装ssh server
sudo apt-get install openssh-server
两种方式启动ssh
sudo /etc/init.d/ssh start
sudo service ssh start
使用xshell 进行登录
port 22 不需要修改
ip 地址,ssh , 然后就是帐号与密码,设定save
6-opengrok 设定
环境准备ubuntu 16, java-8
android-10 source code
准备需要的的软件:
apache-tomcat-9.0.44.tar.gz
opengrok-1.1-rc30.tar.gz
sudo apt-get install exuberant-ctags
tomcat与opengrok 下载地址:
https://pan.baidu.com/s/1v3Er8NTrL1TZTu-G3pjh4A
提取码: mche
https://pan.baidu.com/s/10oP4guSg5_cMPhaXKPy5lA
提取码: 9ma4
tomcat 与opengrok 解压路径,路径重命名如下
sudo tar -xvzf xxx.tar.gz -C /opt/xxx/
/opt/tomcat
/opt/opengrok

1)start config
cp /opt/opengrok/lib/source.war /opt/tomcat/webapps/
- config
add in ~/.bashrc
export CATALINA_HOME=/opt/tomcat/bin
source ~/.bashrc
3)deploy
sudo OPENGROK_TOMCAT_BASE=/opt/tomcat /opt/opengrok/bin/OpenGrok deploy
上面指令执行之后,没有下面的文件:/opt/tomcat/webapps/source/WEB-INF/web.xml
尝试进行第6步骤:sudo sh catalina.sh start
check 是否没有权限
cd /opt/tomcat/webapps
如果上面的指令提示没有权限,需要
cd /opt/tomcat/
chmod 777 * -Rf
cd /opt/opengrok /
chmod 777 * -Rf
config create index path:
vim /opt/tomcat/webapps/source/WEB-INF/web.xml
....
<context-param>
<description>Full path to the configuration file where OpenGrok can read its configuration</description>
<param-name>CONFIGURATION</param-name>
// below here config path of index, this import
<param-value>/opt/opengrok/data/configuration.xml</param-value>
</context-param>
.....
-
chmod 777 catalina.sh
sudo chmod 777 /opt/tomcat/bin/catalina.sh
-
create dir
//for project source code
mkdir /opt/opengrok/souce
//for deploy index files
mkdir /opt/opengrok/data
//建立软链接
sudo ln -s /source_code_project/android10 /opt/opengrok/souce/android-10
cd /opt/opengrok/lib
//开始进行做index ,时间漫长
sudo java -jar opengrok.jar -P -S -v -s /opt/opengrok/souce/ -d /opt/opengrok/data -W /opt/opengrok/data/configuration.xml
- 启动tomcat 体验opengrok
cd /opt/tomcat/bin
sudo sh catalina.sh start--->启动
sudo sh catalina.sh stop
ifconfig //查看pc IP 地址
启动之后访问:http://IP 地址:8080/source/
REF:
https://github.com/oracle/opengrok/
https://www.pianshen.com/article/34904619/
https://blog.csdn.net/qianxuedegushi/article/details/109708048
https://blog.csdn.net/lusyoe/article/details/53314006
7-ubuntu android 模拟器
build android
安装JDK8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
进行安装对应的库
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
build:
source build/envsetup.sh
lunch(选择刚才你设置的目标版本,比如这里了我选择的是)
[这里选择比较重要,有点模拟器根本不能跑,ubuntu 16,android10 ,lunch:aosp_x86_64-eng ]
make -j8
emulator
下面指令是启动横屏的参数设定
[emulator -skindir ./android10/development/tools/emulator/skins/ -skin WXGA800]
其他启动供参考的参数:
emulator -sysdir out/target/product/generic/ -system out/target/product/generic/system.img -ramdisk out/target/product/generic/ramdisk.img -data out/target/product/generic/userdata.img -kernel ./prebuilts/qemu-kernel/arm/3.10/kernel-qemu -sdcard sdcard.img -skindir sdk/emulator/skins -skin WVGA800 -scale 0.7 -memory 512 -partition-size 1024
8-ubuntu 空间不足问题
发生错误
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed;...
查看空间大小
#free -m
第一步:创建一个大小为256M的文件:
#dd if=/dev/zero of=/swapfile bs=1024 count=3000000
第二步:把这个文件变成swap文件:
#mkswap /swapfile
第三步:启用这个swap文件:
#swapon /swapfile
第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap文件:
/swapfile swap swap default 0 0
9-python 问题
FAILED: out/target/product/generic_x86/system-qemu.img
/bin/bash -c "(export SGDISK=out/host/linux-x86/bin/sgdisk SIMG2IMG=out/host/linux-x86/bin/simg2img; device/generic/goldfish/tools/mk_combined_img.py -i out/target/product/generic_x86/system-qemu-config.txt -o out/target/product/generic_x86/system-qemu.img)"
File "device/generic/goldfish/tools/mk_combined_img.py", line 48
print "'%s' cannot be converted to int" % (line[2])
^
SyntaxError: invalid syntax
14:03:41 ninja failed with: exit status 1
解决方案:
此问题因为我默认设置python指向了python3,导致运行python代码时出错,解决方案是将/usr/bin/python中的连接重新指向python2.7 或3.6,然后再次编译即可
安装python 3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
$ sudo rm /usr/bin/python
$sudo ln -s /usr/bin/python3.6 /usr/bin/python
./prebuilts/android-emulator/linux-x86_64/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm64/kernel-qemu
10-kvm cvdnnetwokr 问题
Execute the following to correctly configure:
# Add your user to the kvm group:
sudo usermod -aG kvm $USER
# Add your user to the cvdnetwork group:
sudo usermod -aG cvdnetwork $USER
You may need to logout for the changes to take effec
解决方式
$sudo addgroup kvm
$sudo usermod -a -G kvm $USER
$sudo addgroup cvdnetwork
$sudo usermod -a -G cvdnetwork $USER
11- ubuntu 16 studio 导入源码
这里需要执行以下四条命令:
1. "source build/envsetup.sh" (source可以用 . 代替,即". build/envsetup.sh")
2. "lunch",并选择要编译的项目
3. "make idegen -j4" (这里的 -j4 表示用4线程来编译,可以不加)
4. "sudo development/tools/idegen/idegen.sh" (我的电脑需要管理员权限才能执行成功,所以我一般会在前面加上"sudo")
create: 生成下面文件,如果权限不够,chmod 777
android.iml (记录项目所包含的module、依赖关系、SDK版本等等,类似一个XML文件)
android.ipr (工程的具体配置,代码以及依赖的lib等信息,类似于Visual Studio的sln文件)
android.iws (主要包含一些个人的配置信息,也有可能在执行上述操作后没有生成,这个没关系,在打开过一次项目之后就会自动生成了)
在android studio 中,找到下面的选择,进行打开工程就可以了
Open an existing Android Studio project
12- build Android.mk 过程中出现
ld.lld: error: undefined symbol: __android_log_print
>>> referenced by httpclient.c:86 (vendor/frameworks/manager/libhttp/httpclient.c:86)
>>> out/target/product/generic_arm64/obj/SHARED_LIBRARIES/libhttp_intermediates/httpclient.o:(httpclient_connect)
一定要根据提示check, LOCAL_SHARED_LIBRARIES += liblog
13- VS2010 加载工程中出现的问题
背景, 工厂生产过程使用,使用到了PC 工具,之前的开发是根据VS2010 环境搭建的。
ISO 安装工具,(vs2010 是ISO 文件)
链接:https://pan.baidu.com/s/1jmFscoi43KTv3CZcYIDqEQ
提取码:2w7z
VS2010 下载安装:
链接:https://pan.baidu.com/s/1NF-9XFRP7Nika3apg_MKlw
提取码:hmo8
compact 3.5 安装:
(64位系统选择 x64 )
链接:https://pan.baidu.com/s/1gFQO34-YB9E4pYOZa9JfmQ
提取码:etjl
在加载原有的工程遇到下面问题,需要安装包:compact3.5包

遇到问题: VS2010 安装结束,但是在加载原有工程的是时候遇到了问题。
遇到问题
问题1:
"LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏"
解决方法:
查看计算机是否为64bit操作系统,如是,继续如下操作。查找是否有两个cvtres.exe。
C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe
右键属性—详细信息, 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。
治本的办法是第二步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。
一定要看清版本号,根据版本号,删除旧版,不要根据时间戳
问题2:
命令行编译build出错:error MSB6006: “mt.exe”已退出,代码为 31
该解决方法就是:(查看方式,是左侧的项目点击选中后右键可以看到)
项目->属性->链接器->清单文件->生成清单 改为 "否"
14- Fidder 如何获取https 协议的包
server: PC , client Android 设备
- PC 端:
官网下载地址:https://www.telerik.com/download/fiddler
Tools--Options


注:fiddler设置完一定要重启fiddler才生效
-
android设备端:
手机正在连接的wifi,修改网络设置, 设定代理,每个厂家的手机设定地方不同
在android 设备端使用浏览器输入:http://1192.168.1.xxx:8888
安装证书之后,可以在android 设备 的安全,信任证书中看到证书
注:若打不开该网址或待测app报网络连接超时,请把电脑上的防火墙关闭,亲测!
- 测试结果:
1)微信在支付上可以看到图片,数据内容是加密的,单独有server
2)学而思没有加密,json ,image图片都可以解析
3)贵司的app,调试版本可以获取说有的数据,方便json 方式调试
15- 如何上传gerrit 仓库,本地原有code 上传
.repo/manifests/default.xml
....
<project path="tools/base" name="xxx/platform/tools/base" groups="notdefault,tools" />
....
上传建立仓库sh脚本:
LOCAL_PATH=`pwd`
while read LINE
do
#cd $LOCAL_PATH
command_line=`echo $LINE | grep "<project"`
if [ "$command_line" ]
then
#echo $LINE
reposity_name_sec=${LINE#*name=\"}
reposity_path_sec=${LINE#*path=\"}
if [ "$reposity_name_sec" ] && [ "$reposity_path_sec" ]
then
reposity_name=${reposity_name_sec%%\"*}
reposity_path=${reposity_path_sec%%\"*}
src_path=$LOCAL_PATH/$reposity_path
#echo $src_path
if [ -d "$src_path" ]; then
echo $reposity_name
cd $src_path
rm -rf .git
rm -rf .gitignore
git init
git remote add origin ssh://name@ip:port/aosp-xxx/$reposity_name
git pull origin master
git add ./*
git commit -am "init commit"
git push origin master
# cd -
fi
fi
fi
done < $1
ubuntu 开机自动运行
sudo vi /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
sudo vi /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "看到这行字,说明添加自启动脚本成功。" > /usr/local/test.log
exit 0
sudo chmod +x /etc/rc.local
使用服务
sudo systemctl enable rc-local
启动服务
sudo systemctl start rc-local.service
监测状态
sudo systemctl status rc-local.service
监测系统服务是否OK
cat /usr/local/test.log
之后开机运行的程序在 /etc/rc.local 末尾增加 docker-startup.sh 脚本
# vim /etc/rc.local
# 追加到末尾即可
# /root/shell/docker-startup.sh
如何处理文件过大的问题
# 分卷压缩gz
# tar zcf - Linux_for_Tegra/ |split -d -b 2048m - Linux_for_Tegra.tar.gz.
# 生成文件: logs.tar.gz.00 logs.tar.gz.01
# 解压gz分卷
$cat Linux_for_Tegra.tar.gz0* > Linux_for_Tegra.tar.gz
$tar zxvf Linux_for_Tegra.tar.gz
$cd Linux_for_Tegra
update /etc/apt/sources.list
https://mirrors.ustc.edu.cn/repogen/
REF:
https://www.jianshu.com/p/367f0886e62b
https://blog.csdn.net/happypX/article/details/96056543
https://blog.csdn.net/csusunxgg/article/details/109246774
https://blog.csdn.net/turtlejj/article/details/83857897
https://www.jianshu.com/p/6858a25674b4
网友评论