Android 開發 知曉各種id資訊(獲取執行緒ID、activityID、核心ID)
/** * Returns the identifier of this process's user. * 返回此程序的使用者的識別符號。 */ Log.e(TAG, "Process.myUid() = " + android.os.Process.myTid()); /** * Returns the identifier of this process, which can be used with * killProcess and sendSignal. * 返回此程序的識別符號,可用於程序和傳送訊號。 */ Log.e(TAG, "Process.myPid() = " + android.os.Process.myPid()); /** * Returns the identifier of the calling thread, which be used with * setThreadPriority(int, int). * 返回呼叫執行緒的識別符號,該識別符號與StTeRead優先順序(int,int)。 */ Log.e(TAG, "Process.myTid() = " + android.os.Process.myTid()); /** * Returns the thread's identifier. The ID is a positive long generated * on thread creation, is unique to the thread, and doesn't change * during the lifetime of the thread; the ID may be reused after the * thread has been terminated. * 返回執行緒的識別符號。ID是正長生成的關於執行緒建立,對於執行緒是唯一的,並且不會改變。 * 線上程的生存期內,ID可以線上程已被終止。 */ //返回當前執行緒的id Log.e(TAG, "Thread.currentThread().getId() = " + Thread.currentThread().getId()); //返回主執行緒的id Log.e(TAG, "getMainLooper().getThread().getId() = " + getMainLooper().getThread().getId()); //返回當前應用的主執行緒id Log.e(TAG, "((getApplication().getMainLooper()).getThread()).getId() = " + ((getApplication().getMainLooper()).getThread()) .getId()); /** * Return the identifier of the task this activity is in. This * identifier will remain the same for the lifetime of the activity. * 返回此活動正在執行的任務的識別符號。這個識別符號對於活動的生存期將保持不變。 */ //返回activity任務棧的id Log.e(TAG, "getTaskId() = " + getTaskId()); /** * The kernel user-ID that has been assigned to this application; * currently this is not a unique ID (multiple applications can have the * same uid). * 已分配給該應用程式的核心使用者ID;這不是一個唯一的ID(多個應用程式可以有相同的UID)。 */ Log.e(TAG, "getApplicationInfo().uid = " + getApplicationInfo().uid); /** * The name of the process this application should run in. From the * "process" attribute or, if not set, the same as packageName. * 此應用程式應執行的程序的名稱。從“程序”屬性,或如果沒有設定,與PACKAGEName相同。 */ Log.e(TAG, "getApplicationInfo().processName = " + getApplicationInfo().processName); /** * 得到當前activity的資訊 */ Log.e(TAG, "Activity.toString:"+this.toString()); new Thread(new Runnable() { @Override public void run() { //返回當前執行緒的id // TODO Auto-generated method stub Log.e(TAG, "Thread.currentThread().getId() = " + Thread.currentThread().getId()); } }).start();
結果:
2018-08-28 15:00:42.887 29813-29813/com.example.user.demo E/EventBusDemoActivity: Process.myUid() = 29813
2018-08-28 15:00:42.887 29813-29813/com.example.user.demo E/EventBusDemoActivity: Process.myPid() = 29813
2018-08-28 15:00:42.887 29813-29813/com.example.user.demo E/EventBusDemoActivity: Process.myTid() = 29813
2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: Thread.currentThread().getId() = 1
2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: getMainLooper().getThread().getId() = 1
2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: ((getApplication().getMainLooper()).getThread()).getId() = 1
2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: getTaskId() = 113
2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: getApplicationInfo().uid = 10085
2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: getApplicationInfo().processName = com.example.user.demo
2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: Activity.toString: [email protected]
2018-08-28 15:00:42.888 29813-29832/com.example.user.demo E/EventBusDemoActivity: Thread.currentThread().getId() = 885
相關推薦
Android 開發 知曉各種id資訊(獲取執行緒ID、activityID、核心ID)
/** * Returns the identifier of this process's user. * 返回此程序的使用者的識別符號。 */ Log.e(TAG, "Process.myUid() = " + android.os.Proces
Android開發中日誌錯誤資訊的獲取與上報
1、背景介紹 在做Android開發過程中,開發階段,我們可以通過DDMS看到輸出的日誌資訊,或者是異常報錯,這個時候一般都是執行時一場,比如空指標,記憶體溢位等等問題,我們在開始做開發的時候就可以得到這些資訊。但是當我們的應用釋出之後呢,對於不同的一些機型
Android | 開發切換頁面後取消掉非同步執行緒AsyncTask
對於Fragment ,切換時 我用 isDetached() 居然不行,我看過Log,切換後顯示的運行了detached,但卻不行。 但是肯定是不可見的啊。 如: if(!isVisible()){ //這樣一串小小的程式碼解決了
android 登入,傳送等待ProgressDialog(多執行緒)
常常需要在登入,傳送或者其他時候需要等待網路,為了增加使用者體驗,這裡使用了ProgressDialog 下面直接放程式碼 ProgressDialog dialog;//新建一個ProgressDialog protected void onCreate(Bun
java併發程式設計(對於執行緒內共享變數安全的思考)
上一篇部落格講解了,多個執行緒之間的互斥和同步的操作,一個是利用了鎖的技術;另一個內則是利用了Object的notify和wait來實現同步操作。這篇部落格呢,來談一下對於執行緒內變
尋找bug並消滅系列——記錄在Android開發所遇到的bug(一)
ont 屬性 XML android oid content 事件監聽器 監聽 設置 之前使用了Android Studio的插件直接為button綁定了監聽器,並實現onClick方法(我的onClick方法無論點擊哪一個都是要實現setcontentview這個方法設置
尋找bug並消滅系列——記錄在Android開發所遇到的bug(二)
col blog 出現 sql數據庫 默認值 資料 獲取 新建 圖片大小 bug 1: bug描述: 無法成功地將edittext中的內容傳入數據庫中 bug動圖: 經過: 最近寫了個項目,項目要使用到SQL數據
Android判斷是否存在外置SD卡(獲取手機所有存儲設備的路徑)
SD卡獲取手機裏所有存儲設備盤符,首先需要得到掛載在手機上的有哪些盤符,這裏需要用到一個被系統隱藏的方法, 即StorageManager下的getVolumePaths()方法。具體通過反射得到。 方法返回值為字符串數組, getVolumeList返回所有相關信息 StorageVolume:
Android開發教程 - 使用Data Binding(一) 介紹
定義 rar 關註 klist amp 團隊 清晰 library 減少 引言 Data Binding(數據綁定)發布於2015年的Google I/O大會,旨在減少Android開發中的大量模板代碼(比如findViewById()),增加代碼及邏輯清晰度,提高開發效
Android開發教程 - 使用Data Binding(三)在Activity中的使用
text 開發 follow wrap app size 做的 三方 綁定 修改activity布局 如果使Activity支持Data Binding,在布局的最外層加入"<layout>"標簽即可,由於是加在最外層,所以即使重構現有工程,
Android開發教程 - 使用Data Binding(二)集成與配置
集成 我們 enabled 總結 code ref href 管理工具 amp 安裝依賴庫,配置工程 Data Binding安裝和配置都非常簡單,僅需簡單的兩步即可完成。 更新SDK 打開SDK管理工具,下載最新的Android Support庫。 配置工程的Gradle
Android開發教程 - 使用Data Binding(八)使用自定義Interface
extend 方便 獲取 ble main implement lec click 簡單 為什麽要使用自定義Interface 我們平常在Android的開發中,比如如果要設置一個View的點擊事件,通常通過view.setOnClickListener()來實現的,這
Android開發教程 - 使用Data Binding(七)使用BindingAdapter簡化圖
() quest 需要 binding animate 規則 直接 什麽 void 什麽是BindingAdapter BindingAdapter用來設置布局中View的自定義屬性,當使用該屬性時,可以自定義其行為。 下面是一個簡單的例子: @BindingAdapter
【Android開發—智慧家居系列】(四):UDP通訊傳送指令
【Android開發—智慧家居系列】(四):UDP通訊傳送指令 思路回顧 【1】手機連線WIFI模組 【2】UDP通訊對WIFI模組傳送指令,以和WIFI模組保持連線狀態 【3】UDP通訊對WIFI模組傳送指令,讓其搜尋可用的無線網,返回WIFI列表
【Android開發—智慧家居系列】(三):手機連線WIFI模組
【Android開發—智慧家居系列】(三):手機連線WIFI模組 概述 實現連線WIFI的功能會用到一個工具類,原始碼可以點選連結下載。網上這些類似的工具類裡的程式碼差不多是一樣的。連線無線網主要有兩個方法: 其中有一個Connect方法,還有一
【Android開發—智慧家居系列】(二):用手機對WIFI模組進行配置
【Android開發—智慧家居系列】(二):用手機對WIFI模組進行配置 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u010924834/article/details/49496729 在實際開發中,我開
Android開發OA幸運飛艇原始碼出售 - 獲取系統輸入法高度的正確姿勢
問題與解決在Android應用的開發中OA幸運飛艇原始碼出售QQ2952777280【話仙原始碼論壇】hxforum.com,有一些需求需要我們獲取到輸入法的高度,但是官方的API並沒有提供類似的方法,所以我們需要自己來實現。 查閱了網上很多資料,試過以後都不理想。 比如有的方法通過監聽佈局的變化來計算輸
WEB開發Dao層的抽取(獲取泛型的Class物件,實現查詢方法的抽取)
在WEB開發中,用到三層架構中經常會遇到程式碼抽取的情況,例如在dao層中,我們需要對資料庫的基本操作進行抽取例如這樣,在抽取之前我們需要定義抽取類的介面: public interface BaseDao<T> { public void save(T
【Android開發—智慧家居系列】(一):智慧家居原理
①.通過手機端APP中的配置程式,配置模組要連線的路由器的名稱(SSID)和金鑰; ②. 將WIFI模組連線路由器,路由器通過外網連線到伺服器,如小米的伺服器。完成連線工作。 ③.手機等控制終端連線遠端伺服器,下達命令; ④.遠端伺服器將使用者指令下發給住宅中的WiFi插座 ⑤.W
android 開發中遇到的坑(不定期新增)
學了android好久還是小白的傻孩子,遇到了各種奇奇怪怪的坑,記錄一下以防忘記。 8.0坑: 坑1:傳送Intent訊息開啟apk安裝程式,6.0的手機用的好好的,到8.0手機安裝頁面就一閃而過了 原因:8.0移除了“允許未知來源”的檢查框,它關掉了!!!!所以我這個未知來源的安裝就被