红联Linux门户
Linux帮助

Linux环境下Android常用工具和技巧

发布时间:2014-11-27 15:04:56来源:linux网站作者:zyc13701469860

总结了下Linux环境下Android常用工具和技巧。一方面巩固复习之前的知识,另一方面共享出来,这里工具和技巧可能会对大家有用。


一.终端
1.新建终端 ctrl-alt-t
2.创建新终端窗口 ctrl-shift-t


二.安装/更新软件
$sudo apt-cache search xxx 搜索包含xxx的软件

$sudo apt-get update 更新源

$sudo apt-get upgrade 升级软件

$sudo apt-get install(remove/autoremove) xxx 安装(卸载/自动卸载) xxx软件

$sudo rm /var/lib/apt/lists/lock 释放apt-get锁


三.编译
1.编译源码
$cd source code path
$. source code path/build/envsetup.h
$make

2.编译工程
$cd source code path
$. source code path/build/envsetup.h
$cd project path
$mm

3.64位系统 Android内核编绎错误解决方案
http://blog.csdn.net/zyc13701469860/archive/2011/02/25/6207522.aspx


四.ADB
1.adb命令
adb push <local> <remote> - copy file/dir to device

adb pull <remote> [<local>] - copy file/dir from device

adb shell - run remote shell interactively

adb shell <command> - run remote shell command

adb emu <command> - run emulator console command

adb logcat [ <filter-spec> ] - View device log

adb install [-l] [-r] [-s] <file> - push this package file to the device and install it

('-l' means forward-lock the app)

('-r' means reinstall the app, keeping its data)

('-s' means install on SD card instead of internal storage)

adb uninstall [-k] <package> - remove this app package from the device

('-k' means keep the data and cache directories)

adb start-server - ensure that there is a server running

adb kill-server - kill the server if it is running

adb devices -restart device

2.如果device断开可用以下方法重启
sudo adb kill-server
sudo adb devices

3.终端启动模拟器
$sudo cp android SDK path/tools/emulator /usr/bin/
$emulator -avd avdname [参数1|参数2|...]
$android-sdk-linux_x86/tools/emulator -avd avd4.0 -partition-size 1024 -sdcard mysdcard.iso"

4.在adb push时,发生以下情况:
1.out of memory --内存不足,终端启动模拟器加上 -partition-size xxx参数,xxx为内存大小(MB)
2.read-only --模拟器文件夹只读,使用 $sudo adb remount
3.not found device 同device断开重启方法

5.在终端显示模拟器/真机的log
$adb logcat --一般显示
$adb logcat -v time --输出时间
$adb logcat -v time|grep "xxx" --输出时间和含有字串xxx的log

6.64位系统启动android 3.0模拟器
需要安装$sudo apt-get ia32-libs


五.xp虚拟机无法启动解决方法
$sudo invoke-rcid virtualbox-ose stop
$sudo invoke-rcid virtualbox-ose start


六.VIM + TAGLIST + CSCOPE
1.vimrc

"忽略大小写" 
set ignorecase 

"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限" 
set nocompatible
 
"use mouse everywhere " 
set mouse=ni  

"显示行号 " 
set nu 

"检测文件的类型 " 
filetype on  

"为特定文件类型载入相关缩进文件 
filetype indent on 

"记录历史的行数 " 
set history=1000  

"背景使用黑色 " 
set background=dark  

"语法高亮度显示 " 
syntax on  

"打开自动缩进" 
set cindent  

"下面两行在进行编写代码时,在格式对起上很有用; " 
"第一行,vim使用自动对起,也就是把当前行的对起格式应用到下一行; " 
"第二行,依据上面的对起格式,智能的选择对起方式,对于类似C语言编 " 
"写上很有用 " 
set autoindent  
set smartindent  

"支持C/C++的缩进 " 
set cin  

"方便使用taglist " 
nmap <F2> : Tlist <CR>  

let Tlist_Show_One_File=1 
let Tlist_Exit_OnlyWindow=1 
let Tlist_Use_Right_Window=1  

"第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格 " 
set tabstop=4 
set shiftwidth=4  

"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号 " 
set showmatch  

"去除vim的GUI版本中的toolbar " 
set guioptions-=T  

"当vim进行编辑时,如果命令错误,会发出一个响声,该设置去掉响声 " 
set vb t_vb=  

"在编辑过程中,在右下角显示光标位置的状态行 " 
set ruler  

"寻找匹配是高亮度显示的 " 
set hls  

"设置高亮搜索 
set hlsearch 

"查询时非常方便,如要查找book单词,当输入到/b时,会自动找到第一 " 
"个b开头的单词,当输入到/bo时,会自动找到第一个bo开头的单词,依 " 
"次类推,进行查找时,使用此设置会快速找到答案,当你找要匹配的单词 " 
"时,别忘记回车 " 
set incsearch  

"修改一个文件后,自动进行备份,备份的文件名为原文件名加“~“后缀" 
set backup 

" 保持上一次退出的位置 
autocmd BufReadPost * 
\ if line("'\"") > 0 && line("'\"") <= line("{1}quot;) | 
\   exe "normal g`\"" | 
\ endif 

"按C语言格式缩进 
set cindent 

"继承前一行的缩进方式,特别适用于多行注释 
set autoindent 

"显示括号匹配 
set showmatch 

"括号匹配显示时间为1(单位是十分之一秒) 
set matchtime=1 

"增强模式中的命令行自动完成操作 
set wildmenu 

"不要生成swap文件,当buffer被丢弃的时候隐藏它 
setlocal noswapfile 
set bufhidden=hide 

" cscope setting 
if has("cscope") 
set csprg=/usr/bin/cscope 
set csto=1 
set cst 
set nocsverb 
" add any database in current directory 
if filereadable("cscope.out") 
cs add cscope.out 
endif 
set csverb 
endif 

nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR> 
nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR> 
nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR> 
nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR> 
nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR> 
nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR> 
nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>{1}lt;CR> 
nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR> 

2.建立cscope使用的索引文件
在你需要浏览源码的根目录下(如你想用cscope看linux源码)使用下面命令:
#: cscope -Rbkq<回车>
R 表示把所有子目录里的文件也建立索引
b 表示cscope不启动自带的用户界面,而仅仅建立符号数据库
q生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
k在生成索引文件时,不搜索/usr/include目录


七.Eclipse(linux)
1.设置智能匹配
perferences -> java -> editer -> content attist -> auto activation triggers for java
可设置任意多个


八.linux命令
1.使用back n 代替 cd ../../../
1.1编写goback.sh
#!/bin/bash 
if [ $# != 1 ]
then
echo "a go back dir number required."
exit 1
fi
newdir=`echo "../" | awk -v num=$1 '{for(i=1;i<=num;i++) printf($0)}'`
cd $newdir

1.2新建一个脚本
myutil.sh
alias back="source ~/goback.sh"

1.3在终端输入 $. myutil.sh
然后使用back n就可以返回n层目录


九.Android
1.sqlite3查看数据库
1.1列出所有表
.table
1.2查看表结构
select * from sqlite_master where type="table";
1.3显示标题
.head on
1.4android多媒体数据库位置
/data/data/com.android.providers.media/databases/external.db
需要root权限

2.使用系统权限(适用与用反射调用系统类)
将代码放到源码中编译
2.1在androidmanifast中添加android:sharedUserId="android.uid.system"
2.2编写makefile文件
拿其他app的makefile文件改下就行
2.3mm编译


十.java正则表达式
验证数字的正则表达式集
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0)  ^\d+$
验证非正整数(负整数 + 0)  ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\一-\龥],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数   ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数  ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数  ^(-?\d+)(\.\d+)?


十一.Ubuntu android使用mtp连接
1.下载安装mtpfs
2.sudo mtpfs -o allow_other /media/mt