原创 Android系統Java層通過打印excption查看堆棧信息

之前我們有時會通過閱讀代碼查看某個函數從下到上的調用信息,也有時bug中會多出來一個操作,不知道這個操作是由哪裏發出來的。   基於以上這些問題,我們可以通過打印excption查看堆棧信息。具體操作如下:   比如有個客戶bug,在通話

原创 如何在一個界面中快速得到每個控件的Resource ID

在Android開發中時常會碰到需要定位到某個控件的資源ID的需求。比如有些bug中,某個控件顯示的信息不對;某個控件顯示的位置不對等等。 我們在看到一個界面時,需要找到這個控件的資源ID後再分析相關的代碼。   之前有種方法就是按照字符

原创 Android如何快速打印出Log.d和Log.v相關的信息

Telecom模塊中存在很多Log.d和Log.v相關的信息,這些Log在測試提供或我們平時抓的Log文件中都不會打印出來。所以之前只能手動將Log.d/Log.v變爲Log.i重新編譯APK再提供給測試接Log。   今天學到了一招,在

原创 C/C++統計內存泄漏問題和代碼覆蓋率的方法

1.C/C++統計內存泄漏問題 對於查找代碼中存在的內存泄漏問題,我們可以使用valgrind工具來檢查是否存在內存泄漏問題。比如下面的程序,在堆空間分配20個字節後,程序結束以前並沒有釋放掉這部分內存。 #include <stdio

原创 Google在androidQ中重構startOutgoingCall設計

昨天研究了一下android Q中的startOutgoingCall,這部分代碼相比android9.0變動很大。在android Q中主要使用了CompletableFuture的異步調用,所謂異步調用是指無需等待被調用函數的返回值而

原创 oFono學習筆記(一):oFono中增加消息與接口

oFono是一個開源免費的電話協議棧軟件,它遵循3GPP27.007等通信標準,通過AT命令與modem進行交互,以實現各種電話功能(Voicecall, GPRS, SMS, Stk等等)。由於在oFono之中沒有完全實現TS 27.

原创 android8.1編譯過程中遇到的兩個問題

android8.1編譯過程中遇到的兩個問題 由於公司項目用到安卓8.1的代碼,需要在本地編譯通過。在我的環境下出現了jack server無法啓動的問題,編譯錯誤如下: 1. 關於jack server Jack server是an