android或linux开发常用的一些操作指令和环境配置等

android或linux开发会经常遇到需要删除文件夹下的所有 .svn 文件 或.git文件目录的情况,具体使用如下:
删除项目里面所有.svn和.git 文件:

//删除文件夹下的所有 .svn 文件
find . -name ".svn"| xargs rm -Rf
//删除文件夹下的所有 .git 文件
find . -name ".git"| xargs rm -Rf

本地代码删除所有修改并同步服务器代码:

git删除所有修改:
git checkout . && git clean -xdf
git pull
或强制更新:
git fetch --all && git reset --hard origin/master && git pull

高通的fastboot烧录:

烧录aboot: 
sudo adb reboot boodloader 
sudo fastboot falsh aboot emmc_appsboot.mbn 
sudo fastboot reboot 
烧录bootimage: 
sudo adb reboot boodloader 
sudo fastboot falsh boot boot.img 
sudo fastboot reboot

其它烧录方式请参看下载分区表文件rawprogram_unsparse.xml的内容。

jdk环境变量配置:

vim ~/.bashrc 在文件的最后添加
#######add jdk8u171 configure ########
export JAVA_HOME=/opt/java/java-1.8.0-openjdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
########end add jdk8u171 ############

fopen和open的区别:

一句话总结一下,就是open无缓冲,fopen有缓冲。前者与read, write等配合使用, 后者与fread,fwrite等配合使用。
使用fopen函数,由于在用户态下就有了缓冲,因此进行文件读写操作的时候就减少了用户态和内核态的切换(切换到内核态调用还是需要调用系统调用API:read,write);
而使用open函数,在文件读写时则每次都需要进行内核态和用户态的切换;表现为,如果顺序访问文件,fopen系列的函数要比直接调用open系列的函数快;如果随机访问文件则相反

查看内存的命令:

adb shell dumpsys meminfo <应用包名> : 查看该包名应用的内存
adb shell top -m 数字 : 查看应用内存占用率,其中数字为返回的应用数量,从高到低排序 如:
adb shell top -m 10  查看10个进程的内存情况
adb shell top -n 1 -d 0.5 | grep proc_ id  查看进程占用cpu的情况
adb shell dumpsys meminfo <package_name> 查看APP使用的内存情况
其中,package_name 也可以换成程序的pid,pid可以通过 adb shell top | grep app_name 来查找
重点关注如下几个字段:
1)Native/Dalvik 的 Heap 信息
具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。
2)Total 的 PSS 信息
这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。

adb shell procrank 查看内存信息
VSS:VSS表示一个进程可访问的全部内存地址空间的大小。这个大小包括了进程已经申请但尚未使用的内存空间。在实际中很少用这种方式来表示进程占用内存的情况,用它来表示单个进程的内存使用情况是不准确的。
RSS:表示一个进程在RAM中实际使用的空间地址大小,包括了全部共享库占用的内存,这种表示进程占用内存的情况也是不准确的。
PSS:表示一个进程在RAM中实际使用的空间地址大小,它按比例包含了共享库占用的内存。假如有3个进程使用同一个共享库,那么每个进程的PSS就包括了1/3大小的共享库内存。这种方式表示进程的内存使用情况较准确,但当只有一个进程使用共享库时,其情况和RSS一模一样。
USS:表示一个进程本身占用的内存空间大小,不包含其它任何成分,这是表示进程内存大小的最好方式!
可以看到:VSS>=RSS>=PSS>=USS

查看内存的使用情况:
adb shell dumpsys meminfo $package_name or $pid
adb shell dumpsys meminfo <package_name>

ssh生成sshkey:

ssh-keygen -t rsa
一路回车即可

查看某个模块的日志:

logcat | grep Camera

页内存释放:

To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches

查看网络状态和端口号:

netstat -n -l
lsof -i:8022 //8022是网络端口号,出来就可以看到这个端口号使用的进程PID

查看某个文件的git修改历史:

git log --pretty=oneline /xxx/xxx/MessageItem.java 

android8.x编译jack服务器编译失败时的处理

1. ~/.jack-settings
SERVER_PORT_SERVICE=8022
SERVER_PORT_ADMIN=8023

2. ~/.jack-server/config.properties 
jack.server.service.port=8022
jack.server.admin.port=8023
修改以上两个端口,在当前终端关闭jack服务器,或者重启终端,继续编译

内存定期释放:

flushcache.sh文件内容:
#!/system/bin/busybox sh
/system/bin/log -t pagecache "flush page cache"
echo 1 > /proc/sys/vm/drop_caches

dts编译:

dtc -p 1024 -O dtb -o msm8916.dtb msm8916.dts
发布了93 篇原创文章 · 获赞 10 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/jinron10/article/details/104671098