| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android系统10 RK3399 init进程启动(十六) Android Log日志编写 -> 正文阅读 |
|
[移动开发]Android系统10 RK3399 init进程启动(十六) Android Log日志编写 |
配套系列教学视频链接:? ? ??安卓系列教程之ROM系统开发-百问100ask 说明系统:Android10.0 设备: FireFly RK3399 (ROC-RK3399-PC-PLUS) 前言Android系统中日志基本都是通过log系统来实现, 在代码中可以通过相应的接口来输出不同等级的日志, 不同的缓冲区有不同的API, 等级有Verbose, Debug,Info,Warn,Error。本章节主要讲解log日志的API。 一, 日志系统框架之前的的课程中讲解了整体框架, 此处贴图让大家提升印象: ? 系统也提供的Java和C++/C语言不同的API:
二,?Android 不同缓冲区的APIAndroid系统中包含不同缓冲区, 特定缓冲区用的API不同:
Main缓冲区API(JAVA/C/C++):
Radio缓冲区API(JAVA/C/C++):
System缓冲区API(JAVA): 普通app是无法使用该接口的
Events缓冲区API(JAVA):
Crash缓冲区:主要是由system/core/debuggered守护进程打印(如输出tombstone文件的内容)
三,所有API的底层实现虽然缓冲区不同,API不同,其实内部实现都会有一些通用参数,?如:
C/C++所有接口实现在liblog中, 可以在Android.mk或者Android.bp中加入liblog, 并引入头文件和宏定义:
而system/core/include/log/log.h 有如下包含, 说明不同缓冲区的接口都被包含到了log.h中: 各个缓冲区的写日志的API其实最终是调用:
在NDK编写jni时, 你会常看见如下定义, 其实就是最终调用了上面的统一接口:
四:总结? 不同语言使用不通的API, 其实都不是太复杂, 最终都是写入到不同缓冲区中。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 15:21:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |