touch framework/base/Android.mk // 创建文件夹
cat aa文件 bb文件(可以多个) > 合并到的aabb文件
cat framework/base/Android.mk // 查看文件
echo hello world > framework/base/Android.mk //写入文件
export PATH=$PATH:/opt/android-sdk/tools //.bashrc配置环境变量 man echo // 查看echo命令
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-n 显示匹配行及行号
-i 忽略大小写
-v 显示不包含匹配文本的所有行(相当于求反)
grep 搜索内容串支持正则表达式
find ./ -name framework.jar
find -name ".mk" | xargs grep -r "PicoTts" //将find找到的每一个文件的名字用 grep -r来执行一下
cp -r jdk1.7.0_79 /home/pansen/ // 复制
-c 生成档案文件,创建
-v 显示进度
-f 指定档案文件名称
如果后台有多个命令,可以用fg %jobnumber将选中的命令调出
%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
如果后台有多个命令,可以用bg %jobnumber将选中的命令调出
%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
-aux //查看所有进程
su只能获得root的执行权限,不能获得环境变量 而su -是切换到root并获得root的环境变量及执行权限
df -a //显示所有文件系统的磁盘使用情况
df -m//以2014字节为单位显示
df -t 显示指定文件系统的磁盘空间使用情况
df -T显示文件系统
du -alh 当前文件占用情况
adb shell
fastboot devices
//切换到boot.img所在的目录
fastboot flash boot boot.img
fastboot flash system system.img
fastboot reboot
product目录中: system.img:挂载为根分区,主要包含AndroidOS的系统文件
ramdisk.img:主要包含init.rc文件和配置文件等
userdata.img:被挂载在/data,主要包含用户以及应用程序相关的数据
cd build
./CopyImg.sh qucii3903
acopy OUT Qucii_8939_50_qucii3903
Flat Build ->> prog_emmc_firehose_8936.mbn ->> rawprogram_unsparse.xml ->> patch0.xml
adb reboot edl
编辑 art/build/Android.common_build.mk 文件
找到第75行
将 ifneq ($(WITHOUT_HOST_CLANG),true)
修改为 ifeq ($(WITHOUT_HOST_CLANG),false)
acopy OUT +文件名 //拷贝到windows
acopy IN /home/pansen/ +文件名 //拷贝到Ubuntu
ubuntu和windows之间复制粘贴:
autocutsel -f
VNC: 172.0.0.216:27 147258
echo 6 > /sys/class/ktd20xx/ktd2026/led //向对应节点写值6
cat /sys/class/ktd20xx/ktd2026/led //查看对应节点的值
/home/pansen/.config/xfce4/xfconf/xfce-perchannel-xml/
xfce4-keyboard-shortcuts.xml //修改快捷键
n // 跳转下一个匹配
N // 跳转上一个匹配
1. mmm development/tools/idegen/
全局编译,然后编译idegen这个模块项目,然后生成idegen.jar文件
1.2 如果源码没有编译,需要把idegen.jar copy到out/host/linux-x86/framework/目录下
2. 运行development/tools/idegen/idegen.sh
在根目录生成对应的android.ipr、android.iml IEDA工程配置文件
(修改android.iml文件去掉不要的代码再导入)
可以仿照上面这段代码的"file://$MODULE_DIR$/.repo"/>写法一样过滤掉不需要的内容,这样在导入时就会快很多
3. 打开Android Studio,打开源码根目录下的android.ipr文件,等待...
按住CTRL+鼠标左键跳转到Intent类你会发现跳转过去的是一个Intent.class文件,所以我们需要配置让其能跳转到Intent.java文件
>>打开Module,删掉android依赖中的所有依赖,只保留<Module source>和Android API 23 Platform
->>点击加号的JARs or directories将你源码的frameworks(base)及external和你用到的其他跳转目录添加到依赖中,然后apply即可(<Module source>移到最下)
编译lunch选择一个Target(定义在/device/qcom/目录下),eng版target下编译只能生成apk,不会对该apk文件优化(将apk文件中的classes.dex单独提取,并将classes.dex生成经过优化的odex文件),user版target有定义WITH_DEXPREOPT := true,不过生成的apk和odex是不能push到/system/app目录,Android系统无法识别带有odex文件的apk,因为apk和odex都需要对Android系统其他library进行校验,由于library与通过Android源码生成的library不同,所以apk和odex不能通过验证;只有使用Android源代码生成的system.img文件刷机,或者替换相应的library才可以使用带有odex的apk程序.
LOCAL_JACK_ENABLED=$(DEFAULT_JACK_ENABLED)
disabled: 是指关闭JACK编译,使用android old toolchain
full: 是指全部编译,即每次编译,都会将所有的code全部编译。
incremental: 是指增量编译,即只会编译修改的代码。incremental模式默认是关闭的,需要设置(Incremental compilation is deactivated when shrinking, obfuscation, repackaging or multi-dex legacy is enabled.)
在单独模块的Android.mk中设置LOCAL_JACK_ENABLED为disabled, full, incremental可配置JACK编译的模式
配置默认JACK编译
在/build/core/combo/javac.mk中
ifndef ANDROID_COMPILE_WITH_JACK
# Defines if compilation with jack is enabled by default.
ANDROID_COMPILE_WITH_JACK := true
把ANDROID_COMPILE_WITH_JACK改为false取消默认JACK编译
./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar
./jack-admin start-server
./jack-admin list-server
修改$HOME/.jack-settings和 $HOME/.jack-server/config.properties 端口号