logcat中文翻译譯

下次自動登錄
現在的位置:
& 綜合 & 正文
兩分鐘徹底讓你明白Android Activity生命周期(圖文)!
大家好,今天給大家詳解一下Android中Activity的生命周期,我在前面也曾經講過這方面的內容,但是像網上大多數文章一樣,基本都是翻譯Android API,過於籠統,相信大家看了,會有一點點的幫助 ,但是還不能完全吃透,所以我今天特意在重新總結一下.
首先看一下Android api中所提供的Activity生命周期圖(不明白的,可以看完整篇文章,在回頭看一下這個圖,你會明白的):
Activity其實是繼承了ApplicationContext這個類,我們可以重寫以下方法,如下代碼:
為了便於大家更好的理解,我簡單的寫了一個Demo,不明白Activity周期的朋友們,可以親手實踐一下,大家按照我的步驟來。
第一步:新建一個Android工程,我這裡命名為ActivityDemo.
第二步:修改ActivityDemo.java(我這裡重新寫了以上的七種方法,主要用Log打印),代碼如下:
第三步:運行上述工程,效果圖如下(沒什麼特別的):
核心在Logcat視窗里,如果你還不會用Logcat你可以看一下我的這篇文章 ,我們打開應用時先後執行了onCreate()-&onStart()-&onResume三個方法,看一下LogCat視窗如下:
當我們按BACK鍵時,我們這個應用程序將結束,這時候我們將先後調用onPause()-&onStop()-&onDestory()三個方法,如下圖所示:
當我們打開應用程序時,比如瀏覽器,我正在瀏覽NBA新聞,看到一半時,我突然想聽歌,這時候我們會選擇按HOME鍵,然後去打開音樂應用程序,而當我們按HOME的時候,Activity先後執行了onPause()-&onStop()這兩個方法,這時候應用程序並沒有銷毀。如下圖所示:
而當我們再次啟動ActivityDemo應用程序時,則先後分別執行了onRestart()-&onStart()-&onResume()三個方法,如下圖所示:
這裡我們會引出一個問題,當我們按HOME鍵,然後再進入ActivityDemo應用時,我們的應用的狀態應該是和按HOME鍵之前的狀態是一樣的,同樣為了方便理解,在這裡我將ActivityDemo的代碼作一些修改,就是增加一個EditText。
第四步:修改main.xml布局文件(增加了一個EditText),代碼如下:
第五步:然後其他不變,運行ActivityDemo程序,在EditText里輸入如"Frankie"字符串(如下圖:)
這時候,大家可以按一下HOME鍵,然後再次啟動ActivityDemo應用程序,這時候EditText里並沒有我們輸入的"Frankie"字樣,如下圖:
這顯然不能稱得一個合格的應用程序,所以我們需要在Activity幾個方法里自己實現,如下第六步所示:
第六步修改ActivityDemo.java代碼如下:
轉載請註明:下次自動登錄
現在的位置:
& 綜合 & 正文
XOOPS模塊開發快速入門中文翻譯(十)
由於這兩天一直研究XOOPS的模塊,所以找到了這篇很好的模塊開發快速入門。
看了以後,就興緻勃勃的來開發模塊了,可是開發的過程中遇到一些問題。
應該是我看的太快了,要學而時習之啊。因此翻譯在這裡。
==============
作者:Surance Yin
主頁:http://www.fltek.com.cn
=================
第八章――數據庫操作和類
CRUD 增刪改查數據庫操作有4個基本功能,分別是: Create, Read, Update, D 縮寫為 . 之前我們演示了增加和讀取,現在我們來演示一下.
Create 增加
$query="Insert into ".$xoopsDB-&prefix("tutorial_myform")." (name, address, telephone, email) values ('$name', '$address', '$tel', '$email' )";
$res=$xoopsDB-&query($query);
if(!$res){
echo"error: $query";
$query=$xoopsDB-&query(' SELECT * FROM '.$xoopsDB-&prefix('tutorial_myform')" WHERE id='$myid' ");
$myrow=$xoopsDB-&fetchArray($query);
$name=$myrow['name'];
【上篇】【下篇】下次自動登錄
現在的位置:
& 綜合 & 正文
Android的Logcat命令詳解:翻譯Enabling logcat Logging
Android的Logcat命令詳解
Android LOG系統提供了收集和查看系統調試輸出的功能。各種應用程序和系統其他部分輸出的LOG都存儲在一些循環緩衝區里,這些緩衝區可以通過 logcat 命令來查看和過濾使用。
使用logcat命令
你可以用 logcat 命令來查看和控制系統LOG Buffer里內容,通常用法:
[adb] logcat [&option&] ... [&filter-spec&] ...
這節下面內容解釋過濾以及命令的選項。關於選項的全面總結可參看:
你可以在你的電腦,也可以通過運行在模擬器/設備上的遠程adb shell端來使用logcat命令。在你的電腦上查看LOG輸出:
$ adb logcat
通過遠端 adb shell,可以這樣:
過濾Log輸出
Android LOG信息都有一個標籤(tag)和它的優先級(priority)。
LOG的標籤是一個簡短的描述來指示發生在哪一個系統部件內,在寫LOG時指定。(比如:“View”就是查看VIEW系統的標籤).
優先級有下列幾種,按照優先級從低到高順序排列為:
V — Verbose (最低優先級)
D — Debug
W — Warning
E — Error
F — Fatal
S — Silent (最高優先級,沒有任何輸出)
在運行logcat 的時候在前兩列的信息中你就可以看到 logcat 的標籤列表和優先級別,它是這樣標出的&priority&/&tag&.
下面是一個logcat輸出的例子,它的優先級就是“I”,標籤是“ActivityManage”:
I/ActivityManager(
585): Starting activity: Intent { action=android.intent.action...}
為了讓LOG輸出達到可管理的級別,你還可以用過濾器來限制LOG輸出,過濾器可以幫助只是顯示你感興趣的tag-priority組合的信息,而隱藏其他信息。
A過濾器語句按照tag:priority ...格式描述。這裡,tag 表示是感興趣的標籤,priority 是表示報告指定標籤的最低等級。 包含上面tag的信息或者指定優先級之上的信息被寫入LOG。你可以在一個過濾表達式中提供多個tag:priority 聲明,這些聲明之間用空白符間隔。
下面有一個過濾表達式的例子,例子表示不顯示其他所有的LOG信息,除了那些標籤為“ActivityManager”且優先級為“Info”以上的和標籤為“ MyApp”且優先級為“ Debug”以上的信息。
adb logcat ActivityManager:I MyApp:D *:S
上面表達式的最後的元素 *:S,,是設置所有標籤的優先級為“silent”,這樣保證只有“View”和“MyApp”的LOG才會顯示。用 *:S 的是確保日誌輸出被限制在你明確指定的過濾表達式的極好方法——它使的你的過濾器在LOG輸出時就像一個“白名單”。
下面過濾語句顯示優先級為warning或更高的LOG日誌信息:
adb logcat *:W
如果你在電腦上運行logcat (相比遠程運行adb shell),你還可以通過為環境變量ANDROID_LOG_TAGS指定一個參數來設置缺省的過濾器:
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"
需要注意,如果你從遠端運行logcat 或者使用adb shell logcat,ANDROID_LOG_TAGS 過濾器並不能應用在模擬器/設備實例上 。
控制LOG輸出格式
Log日誌信息除了包括標籤和優先級外,還有許多其他元數據域。可以修改日誌的輸出格式,來顯示出特定的元數據域。可以通過-v 選項來指定下列所支持的格式化輸出。
brief — 顯示priority/tag和打印LOG進程的PID((缺省格式)。
process — 僅僅顯示PID。.
tag — 僅僅顯示priority/tag。
thread — 顯示進程:線程和priority/tag.
raw — 顯示原始LOG信息,不顯示其他元數據域。
time — 顯示日期,發生時間,priority/tag和打印LOG進程的PID。
long — 顯示所有的元數據域和LOG信息,他們之間用空白行隔開。
當啟動了logcat,你可以通過-v選項來指定輸出格式:
[adb] logcat [-v &format&]
下面是用 thread 輸出格式來產生的LOG的例子:
adb logcat -v thread
要注意的是你只能用-v 選項來指定一個輸出格式。
查看指定的LOG Buffer
Android日誌系統有多個循環緩衝區,並不是所有的LOG信息都把LOG輸出到默認循環緩衝區。為了看到其他緩衝區的LOG信息,你需要通過-b 選項來啟動logcat 。來看其他循環緩衝區。這些緩衝區有:
radio — 查看與無線/電話相關的緩衝區里的信息。
events — 查看和事件相關的的緩衝區。
main — 查看main緩衝區里的LOG (缺省)
選項使用方法:
[adb] logcat [-b &buffer&]
下面的例子演示怎麼查看包含radio 和 telephony信息的LOG緩衝區:
adb logcat -b radio
查看stdout和stderr
在默認狀態下,Android系統輸出stdout 和 stderr
(System.out 和System.err)到/dev/null。在運行Dalvik VM的進程中,有一個系統可以備份日誌輸出。在這種情況下,系統會用stdout 和stderr和優先級 I.來記錄日誌信息。
通過這種方法來指定輸出的路徑,你可以停止運行的模擬器/設備,然後通過用命令setprop 使輸出重定向。
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
系統在你關閉模擬器/設備前設置會一直保留這些設置。為了使這個設置作為你的模擬器/設備的默認設置,可以通過添加到設備的文件/data/local.prop 中。
Logcat命令選項列表
-b &buffer&
加載一個指定的LOG Buffer供查看,比如event 或radio。 默認值是main 。具體參考.
清除整個 log並退出。
輸出LOG到屏幕上並退出。
-f &filename&
寫LOG信息到 &filename&。默認是stdout.
打印指定LOG Buffer的大小並退出。
-n &count&
設置日誌的最大數目&count&,默認值是4,需要和選項-r一起使用。
-r &kbytes&
Rotates每輸出&kbytes& 寫LOG文件,默認值為16,需要和選項-f一起使用。
設置默認的過濾級別為silent。
-v &format&
Sets 設置LOG的輸出格式,默認的是brief 格式,要知道更多的支持的格式,參看.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
附,大家看兩張在WORD里編輯的效果:
轉載地址:
【上篇】【下篇】下次自動登錄
現在的位置:
& 綜合 & 正文
這篇文章太好了!轉載在此!
幾年前在家門口的一家小飯館吃飯的時候,我想明白了「為什麼所有的服務員都這麼糟糕」的問題:老闆只願意為一個服務員的職位出這些錢,而一個服務員好到遠不止這些錢的時候,她就不會去干服務員了。當然,引申的還有為什麼老闆只願意出這些錢,因為你去吃飯給他帶去的利潤只值這些,等等。
佐證我這個觀點的是去年跟河北某 IDC 託管主機的時候,那個客服很不錯,辦事很麻利很乾凈,也試著自己搭站點什麼的,偶爾還會問我一些問題,我當時就奇怪這樣的人怎麼會甘心當客服,果不其然,幾個月之後他就辭職了,之後換過兩三個客服,不用說,都很糟糕,我還投訴過其中的一個。
後來看到《卧底經濟學》的時候,還知道有人做過正統的歸納、論證,提出一個詞叫「比較優勢」,末了作者還自嘲自己之所以可以靠寫經濟專欄為生,是因為更牛逼的人雖然可以寫經濟專欄寫得比他更好,但是人家可以靠別的方式掙到更多的錢。
在充分的市場競爭環境下,所有人都會坐到相對於自己來說最正確的位置,我還是喜歡更為簡短且粗俗的描述:所有人活該如此。
舉個例子,公司和員工個人的利益有很大分歧,
偶爾去藍色理想轉轉,感慨JS版為啥這麼多人在重複造輪子?感慨之後又感慨不重複造輪子的話,又怎麼能學會JS?對於老闆來說,復用性節約money,對於程序員來說,重複造輪子是學習的好途徑。
而最近碰到些事情,讓我第一次認真琢磨一個以前從來不認為是問題的問題:為什麼有人願意屈就公司的需要而自毀前程。當然,答案也是上面說過的,活該如此。
具體事情沒法多說,只是一直做網站的我,從來沒細想過,對倭外包、或者對 discuz/uchome 做二次開發的人,會有這麼這麼多,其實他們才是所謂 IT 行業的主流,而自己實際是被邊緣化了的。
在不同角度看這個問題是不一樣的,首先事情本身到沒到「毀前程」這種程度,以及對「屈就」的定量問題,就像物理性質的「彈性」概念,玻璃也有彈性的,看你跟什麼東西比了。
我最大的「屈就」是在 05 年的時候寫了幾個月的 JavaScript,不過相信真正對 JS 很懂的人不會認為我這句話是冒犯。當時公司的那個客戶端,本身界面要經常改動,還要跟網站本身有一些交互,所以我把這部分工作接下來了,軟體的 GUI 部分只有一個 IE 窗口控制項,除了常見的浮動窗口之類的效果,還要做個進度條效果,而且是很多進度條,總之我在給我自己定目標、找動力。但那總之都不是一個讓人愉快的工作,會在各種各樣的地方出現所謂的「偶然複雜度」(不知道現學現賣的這個詞是否恰當),比方說,當時蹩腳的殺毒軟體會讓我繪製的 DIV 菜單消失、某個版本的 msn activex 會導致頁面出現離奇錯誤(儘管那頁沒用到 activex,但是禁用 msn activex 後就一切都好了)、某特定語言的 win 98 下的正則不能用兩個 / 而必須用 new RegExp,等等等等,並且當時除了 prototype 剛剛在世界掀起波瀾,還沒有任何框架,我也只是在學習,也不可能馬上用在產品上。等做得差不多了,也有一兩個人可以勉強接替我這部分工作的人,我跟經理說,我不想干這個了,假設接替的人勝任不了,界面的變動也只能暫時放放了。
我的理由是基於直覺的:干這個有天花板。前幾天還在一次面試的時候解釋過這問題:互聯網對高水平的 JS/CSS 的需求量太少了,如果全國需要 1000 個能解決 c10k 問題的人,可能相同等級的 JS 程序員也就需要 3 個,顯然後者更有競爭難度。
但直到兩天前,我在買阮一峰翻譯的《軟體隨想錄》時順便買的一本里,重新看到了 Paul Graham 的《偉大的黑客》,我早就忘了作者和文章標題,也忘了是什麼時候看到的了,但我記得其中每一段話的要素,下面這兩段對我尤其重要,我一直把他作為判斷工作的準則之一:
所有這類討厭的小問題都有一個共同特徵,既您從中學不到任何東西。寫一個編譯器很有趣,那是因為您可以從中學會編譯原理。為充滿 BUG 的軟體編寫介面程序您卻什麼也學不到,因為那些 BUG 是隨機的。因此,優秀的黑客會盡量迴避那些討厭的小問題。這不是挑三揀四,更主要的是為了自保——長期面對那樣的小問題會使人變得愚蠢。黑客們的做法其實與模特們戒食乳酪的道理是一樣的。
我不知道您能否培養出這些品質,但至少可以不去抑制它們。如果您有希望成為一名偉大的黑客,那麼我建議您最好做到:一方面,絕不在枯燥的項目上浪費生命(除非不這麼做您和家人就會餓死);另一方面,做事必須有始有終、滴水不漏。我所認識的所有偉大黑客似乎都是如此,也許他們根本就沒想過還有其他什麼選擇。
縱使自己最終無法達到 Paul Graham 筆下的黑客標準,起碼,你不遵守這些就肯定無法達到了。另外這還是我不沾酒的一個漂亮的理由:我覺得那玩意傷腦子,哪怕只損傷萬分之一我也無法接受。半年前基於同樣的理由我連可樂都戒了。
回到最初的問題上,讓我直白(可能會有尷尬)地把話說出來,如果你覺得你乾的活挺傻逼的,馬上跟老闆說辭職,然後再考慮找工作的事,除非你自己也覺得,你只配干這種傻逼活。這是對我的幾個同事想說而沒能說出口的話。
最近常常在想,03 年急於找工作的時候,是由於幸運,還是性格使然,而沒淪落到改模板/做外包的工人,在目睹了像的「大多數的工程師並不是「做了五年的系統開發」,而是「做了一年的系統開發,然後重複五次」」的實例後,還是有些後怕。
【上篇】【下篇】拒绝访问 | colabug.com | 百度云加速
请打开cookies.
此网站 (colabug.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(433d53f4b26243f5-ua98).
重新安装浏览器,或使用别的浏览器}

我要回帖

更多关于 中文翻译 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信