工作内容记录:
2017.6.20
先在build/buildplus/namespace/names.ini添加宏,设置默认值
对于不同的项目,是否支持新建的宏,需要在build/buildplus/buildspec/项目名称.spec里面定义。
关于目前项目的宏定义
[customer Feature Default Value]
这个标签下面的,大部分都是 BOARD_CONFIG_XXXXXX 之类的宏,是在make file 里面使用的
[Java Feature]
这个标签下面的,基本都是 FEATURE_XXXX_XXX , 这是在java文件中使用的;
C、cpp 等编译成库、bin模块中使用的宏,无法直接在names.ini中定义,
都是 定义一个 BOARD_XXX_XXX ,然后在对应模块的 Android.mk 中用如下方法定义的:
ifeq ($(BOARD_SHOW_IMEI2_IN_FFBM), true)
LOCAL_CFLAGS += -D_SHOW_IMEI2_
endif
-D 标记后面的, 就是在 c里面用的 , 例如这里的: _SHOW_IMEI2_
2017.7.20
1. 工程模式的开发(NFC, 远距离,手势,2.4G/5G-Wifi、10点触摸、双喇叭、前置指纹、指纹键导航长短按双击等)
2.
编译:make systemimage -j8
编译不同的项目,需要重新设置编译环境,. build/envsetup.sh,并清空out目录
然后重新编译systemimage,否则可能会出现,少一项什么的情况
最简单的fastboot刷机流程 :
adb reboot bootloader
fastboot flash misc XXX.misc
fastboot flash system systemimage
fastboot reboot
新机器,eng版本,需要刷
system, boot ,aboot 3个模块。
make aboot bootimage systemimage -j8
fastboot flash aboot emmc_appsboot.mbn
fastboot flash boot boot.img
fastboot flash system system.img
3.编译时间很长,错误很多,因此有些错误看不见了,
make systemimage -j8 2>&1 | tee a.log
a.log会生成在当前目录下
4.每次修改了build/buildplus/buildspec/×.spec,build/buildplus/namespace/names.ini 都需要重新choosecomboext,否则cfg文件的修改就不会生效,而是使用之前编译生成的
./build/buildplus/target/mydefinition.mk:export BOARD_FFBM_PATH_CONFIG:=项目名
如果是修改属性文件build.prop,还要删除/out目录下的属性文件,删除属性命令find out -name *.prop* | xargs rm -rfv
同一个平台下不同的项目切换,需要删除/out目录 rm -r /out
修改apk的资源后,要先删除out/target/common/obj/APPS/模块名_intermediates/下所有文件,然后编译
修改framework下的文件,需要执行make update-api -j8,
生成frameworks/base/api/current.txt, 以及frameworks/base/api/system-current.txt,跟修改的文件一起提交。否则其他人会make不过。
5.qfil进行下载
a.选择程序.mbn;
b.load xml rawprogram_unsparse_formatnv_fsg.xml
6.
长按下键+power键,15S,进入fastboot模式
长按上键+power键,15S, 进入recovery模式(可以进行双清,wipe的两项)
长按 上下键+power键,15S,进入修复模式
还有一种修复模式:
手机按键以及各组合按键都没有反应,用Qfil烧录,先进入修复模式,用特制的线连接手机到PC后,把红黑线连接,长按power键15秒后再断开红黑线,断开后就可以看到,Qfil工具可以看到端口,Qfil的配置同普通,点击download进行下载。
上述操作会硬件reset
对于开机的状况,adb可以连上,可以输入adb reboot edl
2017.10.10
高通8937 后台打印
$adb shell setprop ***.debuggable 1 //更改权限至#下
#adb shell
#logcat>data/log.txt & //&是后台运行的标志符
拔除网线即可操作,所有的打印数据会打印咋log.txt
adb pull data/log.txt d:\ //导出到D盘
2.
class A : public B
表示类A以公有的方式继承类B
class A : public virtual B
3.监控查看下层event
adb shell
#getevent //此命令可以监控当前事件(新增),监控有没有下发事件,有下发时间,会列出事件类型和具体数值
或者
#getevent -i //此命令仅查看事件(详情)
驱动的打印
adb shell cat proc/kmsg
2017.12.7
在android项目里面,import android.support.v7.widget.RecyclerView;的情况下,需要在Android.mk里面进行支持V7,下面3步缺一不可
a.添加包:
LOCAL_STATIC_JAVA_LIBRARIES =android-support-v7-recyclerview
b.上述包的res文件
LOCAL_RESOURCE_DIR := prebuilts/sdk/current/support/v7/recyclerview/res
c.需要使用aapt将v7包编译到本应用中,不然自己的资源会被覆盖
LOCAL_AAPT_FLAGS := \
--auto-add-overlay \
--extra-packages android.support.v7.recyclerview
2017.12.11
adb install -r Calendar.apk //-r 的意思是删除之前安装的Calendar.apk
2018.3.2
1. 转屏不转屏,首先需要看:
设置菜单项里面,总的控制旋转的宏config_supportAutoRotation
./frameworks/base/core/res/res/values/config.xml
<bool name="config_supportAutoRotation">true</bool>