日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“android:process“---由日志引发的大灾难

發布時間:2024/4/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “android:process“---由日志引发的大灾难 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? 本人菜鳥一枚,這幾天在修改一個項目,昨天在一個問題上卡住了,直接卡了一天,后來問了問高手才知道是個小問題。

??? 這是一個由android:process不同進程導致的大災難!寫下來警戒自己。

??? 其中要由notification打開一個activity,但是總是一閃而過,而且activity中的打印信log一直沒有(oncreate一開始就打印了),所有本能懷疑是activity沒成功打開。研究notification的構建好長時間,覺得應該沒問題。debug一下發現進activity了,遇到錯誤關閉了,但是log一直沒有。正是因為沒有log,我才沒想到原來已經在acitivity里運行了。覺得這是個大問題,為啥沒log呢,其他log都能打印出來。

??? 仔細看了看logcat,發現了一點小問題,自己重新創建了一個過濾,這下能看清楚了。

??? 可以看到有倆個不同的application標簽,而運行程序自動顯示的是帶.action的過濾,所以下面的就不顯示了,這樣有些日志就隱藏了。。。。。

??? 但這只是表面的問題,是什么原因導致這樣的?包名是沒有.action的,為啥會出現第一個標簽?看了好久,上午查了也沒有看到有用的信息,后來問一個高手,問題立解!

???android:process!!!

??? 在main.xml文件中,這個程序為一個receiver添加了android:process標簽,內容就是包名+.action!!目的是開啟一個不同的進程來運行下面的代碼,這樣application就不同了。當調用其他的activity時,由于那個acticvity沒有這個標簽,所以就是默認的進程,application就是包名。這樣就導致了不同的日志!!

??? 在網上查了查android:process有關信息,多學了一點東西。下面是引用網上的:

定義activity運行所在的進程名稱。一般情況下,應用的所有組件都運行在為應用創建的默認的進程中,該默認進程的名稱應用包名稱一致。通過定義<application>元素的“process”屬性可以為所有組件指定一個不同的默認進程。但是任意組件都可以重寫默認進程,以便實現多進程操作。

如果該屬性指定名稱以“:”開頭,則一個新的專屬于該應用的進程將會被創建。如果該進程名以小寫字母開頭,則為該activity提供權限以讓其在一個全局的進程中運行。這樣會允許多個應用的不同組件共用一個進程,以便節省資源。

?

Android是支持多進程的,每個進程的內存使用限制一般為24MB的內存,所以當完成一些很耗費內存的操作如處理高分辨率圖片時,需要單獨開一個進程來執行該操作(上面的配置可以用來實現該操作)。即便如此,開發者還是不要隨意多開進程來耗費用戶的資源。(內存限制,有16MB,24MB, 32MB,很老的機型的內存限制會是16MB,這個具體還要再搜索下資料。

?

總結

以上是生活随笔為你收集整理的“android:process“---由日志引发的大灾难的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。