工作1年多了,我总结了下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=1let Tlist_Exit_OnlyWindow=1let Tlist_Use_Right_Window=1 "第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格 "set tabstop=4set 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 noswapfileset 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 csverbendifnmap <[email protected]>s :cs find s <C-R>=expand("<cword>")<CR><CR>nmap <[email protected]>g :cs find g <C-R>=expand("<cword>")<CR><CR>nmap <[email protected]>c :cs find c <C-R>=expand("<cword>")<CR><CR>nmap <[email protected]>t :cs find t <C-R>=expand("<cword>")<CR><CR>nmap <[email protected]>e :cs find e <C-R>=expand("<cword>")<CR><CR>nmap <[email protected]>f :cs find f <C-R>=expand("<cfile>")<CR><CR>nmap <[email protected]>i :cs find i ^<C-R>=expand("<cfile>")<CR>{1}lt;CR>nmap <[email protected]>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/mtp
































更多相关文章

  1. 深入浅出 - Android系统移植与平台开发(五)- 定制手机模拟器ROM
  2. s
  3. Android之NDK初探
  4. Android基本架构初识
  5. 64位WIN7下Android(安卓)开发环境搭建(SDK Manager闪退,无法更新sd
  6. Android自适应屏幕方向、大小和分辨率
  7. Android(安卓):动画的使用(1)
  8. android studio 碰到问题
  9. 最新Android(安卓)SDK_API_开发包_离线包_下载

随机推荐

  1. php求两数组交集的三种方法详解
  2. php在mysql里批量插入数据(代码实例)
  3. PHP实现页面静态化、纯静态化及伪静态化
  4. 解析PHP中的安全模式(safe_mode)
  5. php用逗号格式化数字的方法(代码示例)
  6. PHP作用域和文件夹操作示例
  7. Windows php5.6安装Imagick库的方法详解
  8. 用PHP写一个计算器(附完整代码)
  9. php获取农历、节日、节气的方法(代码实例)
  10. PHP通过设置系统环境变量来区分测试与正