总结了下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
1.vimrc
[plain]
- “忽略大小写”
- 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>
在你需要浏览源码的根目录下(如你想用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/mtp