原创 systrace

一、SysTrace簡介 Systrace是android性能調試優化的常用工具,它可以收集進程的活動信息,如界面佈局、UI渲染、binder通信等;也可以收集內核信息,如cpu調度、IO活動、中斷等;這些信息會統一時間軸,在Chrome

原创 聊聊HDR

什麼是HDR High dynamic range (HDR) 顧名思義就是高動態範圍,這裏的高動態範圍是跟SDR(Standard dynamic range)也就是標準動態範圍比較的。 那麼,如何理解呢? 先從顯示的原理說起。我們知道,

原创 adb logcat使用及Debug技巧

在Android開發中,無論是app還是system的開發,logcat都是debug所必須的。本文整理了一下logcat的日常用法和最常用的Debug技巧。本文的目的不在於大而全,定位差不多是一個快速使用手冊。 常用logcat命令

原创 Graphics Stack總結(一)Linux Graphics Stack簡介

在工作的過程中逐漸有了總結一下當前Gfx技術棧的想法,方便自己對Linux Gfx的整體結構有更好的理解。 總的來說,這一些列文章大部分會翻譯自https://blogs.igalia.com/itoral/,這是在查資料的過程中發現的一個

原创 Android的Sepolicy

Android的Sepolicy實際上是對SELinux安全策略的描述和設置。 什麼是SELinux 安全增強型 Linux(Security-Enhanced Linux)簡稱 SELinux,它是 Linux 的一個安全子系統。SELi

原创 漫談fork

fork有兩個意思, 一個是軟件工程中的fork,例如github中的fork,而fork的含義隨着開源社區的發展,含義有了悄悄的變化 另一個Linux系統中創建進程的fork   1. 軟件工程中的fork 1.1 傳統開源語境下 對

原创 ftrace總結

一. 簡介 ftrace 的作用是幫助開發人員瞭解 Linux 內核的運行時行爲,以便進行故障調試或性能分析 從名字上分析,ftrace = function trace,表示可以進行函數級 trace,最早 ftrace 就是一個 fun

原创 如何給Android的CPP代碼加ALOG

我們在調試Android系統代碼的時候,出於學習/debug的目的,經常需要加ALOG來輸出LOG。因爲print函數是輸出到terminal終端的,系統在運行的時候並沒有這樣的終端,所以需要用Android的LOG系統,也就是ALOG來輸

原创 i915, i965, dri, framebuffer, fbdev, drm, dri, minigbm, edid

什麼是DRI DRI(Direct Rendering Infrastructure)是一個在X Windows System中允許直接訪問graphics hardware的一種framework(架構),並且這種訪問是安全和高效的。DR

原创 Android裏調用callstack(轉)

1.        爲什麼要打印函數調用堆棧? 打印調用堆棧可以直接把問題發生時的函數調用關係打出來,非常有利於理解函數調用關係。比如函數A可能被B/C/D調用,如果只看代碼,B/C/D誰調用A都有可能,如果打印出調用堆棧,直接就把誰調的打

原创 究竟什麼是callback function(回調函數)

關於callback,想必各位程序員一直在用,一般是把作爲參數傳入函數裏的函數當做callback function(回調函數),但實際上可能自己並不完全100%理解。查了一些資料,感覺還是講的比較明白的: 先從命名開始講: callb

原创 Linux的Zero Copy(轉)

作者:零壹技術棧鏈接:https://zhuanlan.zhihu.com/p/83398714來源:知乎著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。 前言 零拷貝(Zero-copy)技術指在計算機執行操作時,C

原创 gdb簡易教程

What is gdb GDB的全稱是“GNU symbolic debugger”,從名稱可以看出,它屬於 GNU 計劃(同時誕生的還有 GCC、Emacs 等),是 Linux 下常用的程序調試器。當下的 GDB 支持調試多種編程語言編

原创 使用WoeUSB在Linux上製作Win10啓動盤

工作中有時需要配置Windows的開發/測試環境,那麼如何用Linux製作Win10啓動盤呢? 這裏我們需要用到的是一個叫WoeUSB的軟件,有兩種方式安裝: #pre-install sudo apt-get install pytho

原创 How to fix git: new blank line at EOF

使用如下命令打patch $ git apply --reject --whitespace=fix filename.patch 此時git會自動處理好new blank line at EOF的問題,然後重新commit,生成的新的