常用工具总结
以下部分内容摘自http://www.52php.cn/article/p-ujdlznmx-vu.html
===》linux 命令行快捷键 对上述两种快捷键的学习, 没有捷径,孰能生巧!
==>轻松复制百度文库的内容: 在百度搜索引擎中 输入 site:wenku.baidu.com +或空格 搜索题目 site命令在指定的网站里搜索, 在搜索结果中点击 百度快照==> man使用 man有9个section,每个section有不同的意义:1-普通命令,2-系统调用,open、write之类,3-库函数,printf、fread等,4-特殊文件 .... man + 数字 + 命令/函数;不加数字,默认从数字较小的手册寻找。 man 2 mount man -a 命令/函数;显示所有的section, 按q键进入下一个section,ctrl+z 直接跳出。
==> fromdos调整代码
有时从别处复制过来的代码,在vim下看到每一行后面有'^M'; 使用fromdos file来调整 ==> ps 查看进程状态
ps工具标识进程的5种状态码: D 不可中断 uninterruptiblesleep (usually IO) R 运行 runnable(on run queue) S 中断 sleeping ==>adb -h adb kill-server (有时候需要root权限,sudo adb ...) adb控制多个设备 $ adb devices$ adb -s 33304728528D00EC shell 有时要向对/system只读文件系统操作,之前要必须remount。 另起终端:adb remount 或者在adb shell下面: mount -o remount,rw /system ==> 使用Monkey $ adb shell # monkey -p com.android.camera -v 500 ==> 数字证书签名apk 1. 使用keytool生成自签名证书 2. 使用jarsigner工具签名.apk文件 3. 使用zipalign对其应用程序 ==> 安装Busybox,bash 下载 http://www.busybox.net/downloads/binaries/1.18.4/ # adb push busybox /system/xbin # cd /system/xbin # chmod 755 busybox # busybox --install # mount -o remount,rw system system ==>apt代理: 公司提供的source只限公司资源;设置apt代理,可使用外网源。 在/etc/apt/apt.conf下加入Acquire::http::Proxy "http://******"; 网址为相应的代理 sudo apt-get update ;source.list 外网源也可以使用了。
$ sudo apt-get install samba $ sudo vim /etc/samba/smb.conf [Work] path=/home/... guest_ok=yes create_mask=0777 writeable=yes $ /etc/init.d/samba restart $ ifconfig 192,168.233.136 Windows映射磁盘驱动 z: 192.168.233.136Work ==>图形界面和终端切换:
$ cp .../out/host/linux-x86/bin/ usr/bin/mydir $ vim ~/bash.rc $ sudo vim /etc/profile export PATH=$PATH:/usr/bin/mydir/bin 理论篇 -> 公钥私钥通过算法生成一对非对称的公钥和私钥,私钥编码,公钥解密。 公钥可以让每个人都知道,它是apk的数字签名。 可以使用PKI(Public Key Infrastructure)签名程序包。 -> 安装apk原理 src=>.jar=>.class=>class.dex=>.apk /system/app/下存放系统应用程序,系统启动时会自行安装。 安装时.apk暂存于/data/app/,安装生成.dex于/data/dalvik-cache/,生成程序包于/data/data/下 -> init进程 1) 解析init.rc (一般都在这里修改设备权限) 2) 创建Zygote 3) 初始化property (系统提供/default.prop,/system/build.prop,/system/default.prop,/data/local,prop) 4) 进入循环,监听事件 -> Zygote 1) App_main.cpp 2) AndroidRuntime.cpp (创建虚拟机,注册JNI函数,由JNI调用JAVA,进入JAVA世界) 3) ZygoteInit.java (建立IPC通信,预加载类和资源,启动system_server,循环等待) -> SystemServer 1) init1 (system_init.cpp) 2) init2 (SystemServer.java) -> Camera系统 Application=>Camera API=>JNI=>native client<==binder==>native camera service=>camera HAL=>kernel(V4L2=>camera sensor driver) Camera.apk=>core.jar=>libandroid_runtime.so=>libcamera_client.so<==binder==>libcamera_service.so=>libcamera.so -> root原理 http://www.cnblogs.com/yubo/archive/2011/10/09/2203877.html -> Android框架 https://14b1424d-a-62cb3a1a-s-sites.googlegroups.com/site/io/anatomy--physiology-of-an-android/Android-Anatomy-GoogleIO.pdf?attachauth=ANoY7couSv927X1T7IoSG1L_KiqXMGsL2rlE0X5xRJzHakOd461YAg83_hAJNTlmA1Ld72QgFPwtbldkVXTDOEtSQY8U1emy0_wmjerESBehYMTkibeRjIlPCZDKn20FNqMXzqpqKWofciYyoOs_kYSyTBLusAmIqpjyFwqOpXVgMS1NoKfKkRy0nROwy5OlEx2DINPIsm7nTpDzQsQOFLqqAOZUifm9VNyi3f5poTr01ygg-Sxf7YQZm1NFqxnEmgSF3C8LtlNby64mHi1TOqcvohmwvZ6JzQ%3D%3D&attredirects=1 实践篇 -> 串口调试: minicom kermit 用minicom抓log: ctrl + A + L 自定义抓取log到指定文件; -> NDK开发 目的:相比JAVA 1)不容易被反编译 2)运行速度快,效率高 示例: 1) /src/com/android/test/MainActivity.java: public native String idFromJNI(); 2) /jni/native.c: jstringJava_com_android_test_MainActivity_idFromJNI( JNIEnv* env,jobject thiz ) 3) 运行脚本编译生成 /libs/armembi/libnative.so App: fd = open("'/dev/ttyACM0',O_RDWR"); read(); write(); Kernel: fd=>VFS=>Char FS=>USB driver(USBD)=>USB core=>USB Host(HCD) Hardware: HCD=>hardware serial device (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |