学习笔记

工作内容记录:

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>


©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页