1.1 有时候公司可能会需要开发者统计项目总代码量和个人提交代码量 此时我们可以git工具获取项目的代码行数
查看项目总代码量 切换到项目的目录下右击找到git bash(在as的终端会找不到awk命令),输入以下指令查看:
git log --pretty=tformat: --numstat | awk '{ add += 2; loc += 2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

1.2 查看某个人的代码量,需要添加--anthor参数即可:

代码量都是我一个人提的,我自己建的项目。
1.3 查看某个时间短的代码量 添加--since和--before参数: git log --since="2023-09-01" --before="2023-09-30" --author="tanyl" --pretty=tformat: --numstat | awk '{ add += 2; loc += 2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
as代码提交记录正好对得上:


2 同步代码步骤:
比如需要将9.32分支代码同步到9.33
2.1首先切换到9.32分支,我们更新到最新代码
2.2然后切换代码到9.33分支,更新到最新代码。
然后
3 回退代码,
然后再Rollback。
3 当合并分支时,比如我们将9.43分支合并到9.45分支去,出现有publish生成的aar冲突时,我们先接受9.43分支的aar,然后再945重新生成覆盖一遍(相应的模块都要执行一次)。
4 日志相关知识
在程序开发过程中,日志打印属于最普遍的操作,是代码调试和验证过程必不可少的手段。在Android开发过程中,我们经常通过Log\Slog等方式写入日志,然后通过对应的logcat命令读取相应的日志信息。具体日志如何写入或者读出,系统代码如何调用,可能也没有深入研究过。本文就通过具体的流程、框架设计、源码分析等讨论下Android日志的读写过程,以及介绍往往遇到日志丢失的场景及典型案例分析。
日志接口内容,共分为java层、native层、kernel层等。下面就对每个层级的内容分别进行介绍。
日志级别分别为VERBOSE、DEBUG、INFO、WARN、ERROR、ASSERT,日志级别依次提升。默认定义了5个buffer缓冲区,分别是main、radio、events、system、crash,对应的ID信息分别为LOG_ID_MAIN、LOG_ID_RADIO、LOG_ID_EVENTS、LOG_ID_SYSTEM、 LOG_ID_CRASH。
Android日志记录系统守护进程logd维护的一组结构化环形缓冲区,这组可用的缓冲区是固定的,且由系统定义。也可以通过logcat 命令查看如下缓冲区。
radio:查看包含无线装置/电话相关消息的缓冲区,可以调用android.telephony.Rlog打印日志。
events:查看经过解译的二进制系统时间缓冲区信息,类型为events的日志是用来诊断系统问题的。在应用框架提供了android.util.EventLog接口通过liblog动态库往日志驱动程序中写入日志,运行时库提供了宏LOG_EVENT_INT、LOG_EVENT_LONG、LOG_EVENT_FLOAT、LOG_EVENT_STRING用来写入events类型日志。
main:查看主日志缓冲区信息,main日志缓冲区是应用程序唯一可用的日志缓冲区,在应用框架中提供了android.util.Log接口通过liblog动态库往日志驱动程序中写入日志,运行时库提供了LOGV、LOGD、LOGI、LOGW、LOGE等宏用来写入main类型的日志。
system:查看系统缓冲区类型为system的日志,在应用框架提供了android.util.SLog接口通过liblog动态库往日志驱动程序中写入日志,运行时库提供了SLOGV、SLOGD、SLOGI、SLOGW、SLOGE等宏用来写入system类型的日志。
crash:查看崩溃日志缓冲区的日志信息。
main_log:该log包含了应用程序的主要日志信息,如错误,警告,信息等,这些日志信息是由Android应用程序输出的。
events_log:该log包含了系统各个组件的事件信息,如屏幕旋转,输入事件等,这些日志信息是由Android系统输出的
android_log:该log包含了Android系统的所有日志信息,包含main_log和events_log,以及其他系统日志信息,如崩溃日志,启动日志等。
kernel_log:该log包含了系统内核的日志信息,如硬件错误,内存错误等,这些日志信息是由Android系统内核输出的。
Android 日志记录系统为日志消息保留了多个环形缓冲区,而且并非所有的日志消息都会发送到默认的环形缓冲区。如要查看其他日志消息,您可以使用 -b 选项运行 logcat 命令,以请求查看备用的环形缓冲区。您可以查看下列任意备用缓冲区:
radio:查看包含无线装置/电话相关消息的缓冲区。 events:查看已经过解译的二进制系统事件缓冲区消息。 main:查看主日志缓冲区(默认),不包含系统和崩溃日志消息。 system:查看系统日志缓冲区(默认)。 crash:查看崩溃日志缓冲区(默认)。 all:查看所有缓冲区。 default:报告 main、system 和 crash 缓冲区。 -b 选项的用法如下:
抓取radio LOG信息命令:
adb logcat -b radio >log_radio.txt
抓取main LOG信息命令:
adb logcat -b main >log_main.txt
抓取event LOG信息命令:
adb logcat -b events >log_events.txt
main log分类系统根据log类型,分为main,radio,events,system,crash frameworks/base/core/java/android/util/Log.java //用于记录main log frameworks/base/core/java/android/util/Slog.java //用于记录framework log frameworks/base/telephony/java/android/telephony/Rlog.java //用于记录radio log frameworks/base/core/java/com/android/internal/os/RuntimeInit.java //内部记录了crash log
5 视频逐帧逐帧分析软件,Avidemux 对分析问题很有用,比如闪一下等。