1. 程式人生 > >Android 開發 知曉各種id資訊(獲取執行緒ID、activityID、核心ID)

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資訊獲取執行IDactivityID核心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移除了“允許未知來源”的檢查框,它關掉了!!!!所以我這個未知來源的安裝就被