2010年8月23日 星期一

Android Memory Leak

這可以看到目前可用的記憶體

ActivityManager actvityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
ActivityManager.MemoryInfo mInfo = new ActivityManager.MemoryInfo ();
actvityManager.getMemoryInfo( mInfo );
Log.i( DT, " minfo.availMem " + mInfo.availMem );
Log.i( DT, " minfo.lowMemory " + mInfo.lowMemory );
Log.i( DT, " minfo.threshold " + mInfo.threshold );

要為程式做 Memory Leak 追蹤 依照下面找找看
1.Trace Memory Allocation
http://developer.android.com/resources/articles/track-mem.html
2.Trace Memory Leak in Native Code

http://groups.google.com/group/android-porting/browse_thread/thread/9c84baa10cebbb68?pli=1
http://discuz-android.blogspot.com/
Key words:
Automatic Memory Leak Tracking on Android
android memory usage with hprof

3.Avoid Memory Leak
http://developer.android.com/resources/articles/avoiding-memory-leaks.html


4.Common Memory Leak
Don't release field of Activity
When activity is closed with calling finish(), the finalize() method may not be called, the instance may stay in memory for re-use in future, but if memory is low, the activity will be released. So don't excpet GC to release field of Activity subclass, you must release them explicitly in onDestroy method. ie.
public void onDestroy()
{
super.onDestroy();
m_textField = null;
m_hashTable.clare();
m_hashTable = null;
}

Send messages in a wrong way
Correct:
Message message = handler.obtainMessage(); //handler is an instance of type Handler
//Set fields of message
message.id = xxx
message.obj = xxx
...
message.sendToTarget();
Wrong:
Message message = new Message();
message.id = xxx
message.obj = xxx
...
handler.sendMessage(message);

That forget to call close() method may cause memory leak

Cursor
IO Stream, such as InputStream/FileInputStream, OutputStream/FileOutputStream
Socket
Database

That forget to call clear() may cause memory leak

HashTable
Map and its subclass,

Collection and its subclass, such as List, ArrayList, LinkedList, Vector, Set, Stack, Queue,


原文

Android ScreenSaver Disable

在開發App時候,為了不讓他自動變成待機畫面
去找了一些關於ScreenSaver的文件
我找到了兩種方式。
方法一:
private KeyguardManager.KeyguardLock mKL;

在onCteate()加入
KeyguardManager km = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
mKL = km.newKeyguardLock("phone");
再新增這個方法
private void disableKeyguard(boolean disable) {
if (disable) {
mKL.disableKeyguard();//取消
} else {
mKL.reenableKeyguard();//重新啟動
}
}

然後複寫下面兩個
@Override
protected void onStart() {
super.onStart();
disableKeyguard(true);
}

@Override
public void onStop() {
super.onStop();
disableKeyguard(false);
}
方法二:
直接在onCreate新增這個
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

2010年7月27日 星期二

Android Menu 建立

首先在Res資料夾裡面再新增一個"menu"
然後在裡面新增一個Android的XML檔案
檔名自取 然後選menu 接下來就可以自己新增Item跟群組了
最後在程式碼區塊再利用下面的做動作

public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.我設定的XML名稱, menu);
return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
int item_id = item.getItemId();

switch (item_id){
case R.id.我設定的ITEM_ID: break;
case R.id.我設定的ITEM_ID: break;
default: return false;
}
return true;
}

2010年7月20日 星期二

Android 多個 Button Listener

當我使用到很多個Button時候,並不希望每個Button,
都新增一個相對應的callback。(假如有10個都要聆聽不同事件,這將會是一個很可觀的程式碼)
這時有兩種方法可以解決
第一種 實作聆聽事件
public class ClassName extends Activity implements OnClickListener,OnTouchListener
當我們宣告要實作後 便會有他要實作的Method

public void onClick(View v) {}//這是單擊事件
public boolean onTouch(View v, MotionEvent event){}//這是觸碰事件

之後我們就可以用她回傳的參數 v.getId() 來判斷是哪一個觸發的
switch(v.getId()){
case R.id.資源名稱:break;
}

第二種 在XML做宣告
直接在XML該元件中新增一個Method名稱,來表示要使用這個Method
android:onClick="ClickHandler"

然後在主要程式裡面跟上面方法相同

public void ClickHandler(View v)
{
switch(v.getId()){
case R.id.資源名稱:break;
}
}

2010年7月19日 星期一

Activity onTouchEvent

當我們創建一個基本的Android時候
通常會繼承Activity
而這個Activity會有一個觸碰的事件可以讓我們捕捉
public boolean onTouchEvent(MotionEvent event)
只要我們一碰螢幕他就會把MotionEvent 的物件給傳送進去這個function
我們可以透過這物件取得現在的各種動作與紀錄
/*這可以取得目前觸碰的螢幕座標X-Y*/
float x = event.getX();
float y = event.getY();
而MotionEvent可以透過getAction()來取得動作
event.getAction();
我們可以利用他回傳的參數來做判斷
switch (event.getAction()){
case MotionEvent.ACTION_DOWN://碰到瞬間break;
case MotionEvent.ACTION_MOVE://移動break;
case MotionEvent.ACTION_UP://離開螢幕break;
}
當然不只有這些參數
有興趣可以參考Android 官方網站的API
MotionEvent
當我想在這螢幕實作Click時。(我所要的click是必須要瞬擊,而不是他押很久放開也算click的話)
我嘗試在ACTION_UP裡面做了一個判斷

long diffTime=event.getEventTime()-event.getDownTime();
if(diffTime<120){
//do click
}
我可以藉由取得按下時間跟放開時間的差來判斷他

emulator: ERROR

emulator: ERROR: the user data image is used by another emulator. aborting
當eclipse開啟Android模擬器時,出現這個錯誤直接前往
C:\Documents and Settings\使用者電腦名稱\.android\avd\自創模擬器名稱.avd\userdata-qemu.img.lock
裡面的pid檔案刪除重開即可。

2010年7月4日 星期日

2010年6月28日 星期一

Javascript 剖析 XML

Step 1.讀取XML

function loadXML(xmlFilePath){
if(window.ActiveXObject)// code for IE {
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlFilePath);
}else if (document.implementation&&document.implementation.createDocument)// code for Mozilla, etc. {
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFilePath);
}else{
alert('您的瀏覽器不支持xml文件讀取,推薦使用IE5.0以上');
return null;
}
}

Step 2.瀏覽XML
//取得node方法
//Method 1 利用tag name
//1.1 取得陣列

var Area = xmlDoc.getElementsByTagName("test");
for (var i = 0 ; i < Area.length ; i++){
var node = Area[i].firstChild.nodeValue;
}

//Method 2 XPATH

xmlDoc.selectSingleNode("test").text;  //從根找起 xmlDoc.selectSingleNode("//test").text;  //回傳第一個找到的


Step 3.存取node (ex. lalala)
xmlNode.xml; // lalala
xmlNode.text; // lalala
xmlNode.getAttribute('what'); //ok

Step 4.讀子節點或父節點
xmlDoc.childNodes;
xmlDoc.parentNode;

Step 5.新增node

Step 6.儲存
xmlDoc.save("xxxx.xml");
原帖網址

javascript Math.random()

Make JavaScript Math.random() useful這篇文章是由Andrew Penry所寫,他將Javascript中的亂數函式Math.random()使用方式做了詳細說明。下列將原文的例子重新列表一次

 範例:Math.random()
值範圍:0 ~ 0.9999999(無窮小數)

【最大值】
 範例:Math.random() * 3
值範圍:0 ~ 2.9999999(無窮小數)

【有最小值】
 範例:Math.random() * 2 + 1
值範圍:1 ~ 1.9999999(無窮小數)

【四捨五入】
 範例:Math.round(Math.random*2+1)
值範圍:(1) - (1.5) - (2) - (2.5) - (3)

【取得大於指定數的最小整數值】
 範例:Math.ceil(Math.random()*2)
值範圍:(0) - (0.5) - (1) - (1.5) - (2)
 注意:在Javascript中,Math.ceil(0) 等於 0

【取得小於指定數的最大整數值】
 範例:Math.floor(Math.random()*2+1)
值範圍:(1) - (1.5) - (2) - (2.5) - (3)
*/

//下列為自訂範圍值的亂數函式(最小值,最大值)
function usefloor(min,max) {
return Math.floor(Math.random()*(max-min+1)+min);
}
function useceil(min,max) {
return Math.ceil(Math.random()*(max-min+1)+min-1);
}
function useround(min,max) {
return Math.round(Math.random()*(max-min)+min);
}

根據Andrew Penry的測試結果,使用floor的方法,各數出現的機率比較平均,所以floor會較好的選擇
原帖網址

2010年2月22日 星期一

手機遺失4個步驟

●手機遺失莫慌張,4 步驟避免災情擴大。

相信多數人都有掉手機的經驗,遺失手機不打緊,若是被不肖之徒拿來盜打,或是騷擾你的親朋好友,那可是賠了夫人又折兵。到底遺失手機時該怎麼做才不會發生這些情形?

現在台灣幾乎是人手一機,在普及率逐年攀升的情況下,相信不少人都有過掉手機的經驗。可能是被偷,也可能是不小心遺忘在某處,再回去現場找時早已被人撿走等等,真的要一一列出遺失手機的情況,那可是說到口水都乾了還說不完呢!

不過,遺失手機還不打緊,只是瘦了點荷包,再買一支就好了,但若是被不肖之徒拿來盜打,甚至是騷擾你電話簿內的親朋好友,那才真的是賠了夫人又折兵。到底手機遺失時,該如何避免這些情形發生呢?

第一步 試著回撥

當你發現手機不見了,第一步可以先回撥自己的號碼,看看是否有人接聽,若有回應,表示可能已有人拾獲,試著請求對方協助歸還。

第二步 申請停話

若是無人接聽,或是呈關機狀態,而在遺失現場也找不到,就應該馬上向你所使用的系統業者客服中心申請停話,若是慢了幾個小時,你的帳單可能會莫名奇妙爆增好幾倍,發生這種情形電信業者可是不負責的喔!

第三步 報警備案

不要以為停話後就安心囉!為了防止有人將你的手機或是內部資料拿去犯罪,最好是到警察局備案,警察會請你留下資料拿回報案三聯單,一有消息會馬上通知你。

第四步 提供手機序號方便追蹤

你若是不小心遺失手機,只要將手機序號 IMEI 提供給電信警察,等到手機再一次使用,電信警察就可依訊號查出發話處,很快就能把心愛的手機找回來。

那麼,手機序號得去哪找?首先,在手機紙盒外頭,會貼著一張條碼標籤,在手機 SIM 卡槽的附近也會貼上同樣的標籤,而這個標籤上的序號就如同是手機的身分證號碼一樣,是全世界獨一無二的一組序號。另外,直接在手機上輸入*#06#也能看到這組序號。建議大家養成好習慣,務必將自己手機的 IMEI 序號抄錄下來,以防萬一。

●預防掉機後遺症 平時做好防範準備

手機遺失的事後處理固然重要,但事前的預防動作如果準備得當,也能減輕不必要的損失。平時可常常備份通訊錄,避免手機遺失時,所有的聯絡資料全飛了。若是你使用的手機有支援資料保密功能,也可善加利用,有效保護個人隱私!


●撿到手機,千萬別竊喜。

日前,歌手陶喆於台北小巨蛋舉辦演唱會,就在演唱會前夕,陶喆在上健身房時手機居然遭竊,讓他氣得說:「我的手機是被撞得亂七八糟的舊貨,竟然也有人要偷,我已決定演唱會結束前選唱兩首歌獻給小偷。」

其實,近幾年手機遺失率隨著手機普及率提高而逐漸增加,侵占遺失物的案例也越來越多,就有不少民眾因為缺乏法律知識、心存僥倖,一不小心就觸法被起訴判刑,留下難堪的前科紀錄。

在我國刑法中有侵占罪的法條存在,而侵佔遺失物則是多項侵占罪名中的一項,只是一直以來都很少用到,不過司法機關近來開始援引此法條,民眾最好注意。


●撿手機犯侵占,有例可循。

案例一:一位陳姓男子在自己住家附近拾獲手機,轉售後獲利 2000 元,意外被電信警察查獲,陳姓男子被以侵占遺失物罪嫌起訴。

案例二:楊小姐撿到 1 支 VK520 手機,占為己用,檢察官給予緩起訴 1 年。

案例三:小徐拾獲 1 支新潮手機,插入自己的 SIM 卡使用,最後被緩起訴 1 年,還得向國庫捐款 1 萬元。

看到這些案例,下次在路上或是公車上看到有人掉手機,千萬別存著僥倖心態,以為賺到了,趕快發揮拾金不昧的精神,找到失主或交給警察,否則要是因此被判刑或罰錢,判刑輕罰款不多卻留下前科紀錄,不值得,也是得不償失啊!



●手機撿來用,女學生吃官司。

嘉義縣1名女議員的兒子在新竹縣公車上遺失手機,報警處理。去年底在搭公車途中新買1萬多元照相手機不見了,縣警局刑警大隊調閱手機通聯等紀錄,發現手機為新竹縣邱姓女大學生(20歲)在使用,傳喚邱女到案說明,邱姓女大學生看到通聯相關紀錄,當場哭著坦承不諱,她說是在公車上撿到手機,因為看起來很炫拿來用,不知道是違法行為。

照「法律」來說是不行的,因為會觸犯「侵佔罪」,理論上是要交給警察,由警察局公告一定期限,期限過後若無人認領,物件歸拾獲人所有。實務上,侵佔罪是告訴乃論,要物件遺失者有到警局報案,案件才會成立。而那位女大學生就是犯了侵占罪,但自己卻不知道,以下是有關的法律常識,供大家參閱,以免不小心觸犯法律:

民法第八百0三條 (遺失物拾得人之揭示報告義務)
拾得遺失物者,應通知其所有人。不知所有人,或所有人所在不明者,應為招領之揭示,或報告警署或自治機關報告時,應將其物一併交存。

刑法第三百三十七條 (侵占遺失物罪)
意圖為自己或第三人不法之所有,而侵占遺失物、漂流物或其他離本人所持有之物者,處五百元以下罰金。

而大家也要有以下的觀念,守法不犯法:

1.切勿有貪心念頭,如把別人遺失的東西,據為已有,就構成侵占罪。

2.誠實的習慣要從小養成,一個小時候喜歡動歪念頭的人,長大後容易觸犯法網。

3.假借別人的身分做任何事都是不合法不負責任的行為,包括在網路上用假名發表意見也是。

所以,若撿到貴重的物品還是送到警察局,以免觸法,罰款不多卻留下前科紀錄,不值得。


原帖網址

2010年2月18日 星期四

加法思考

古老的阿拉伯世界流傳一則充滿智慧的故事:

有位老人死後留下了十七隻駱駝及一張遺囑給他的三個兒子。依照遺囑的劃分,老大可以得到一半數量的駱駝,老二則是三分之一,老三則是九分之一。

這下子問題來了,十七隻駱駝是不能整除於二、三或是九,勢必要將兩隻駱駝宰了分屍才可以。但是死駱駝又不值錢,三兄弟為了這問題大傷腦筋,甚至鬧得兄弟鬩牆,最後沒有辦法,只好請族長裁示。

族長了解情況後,笑咪咪地表示,為了要讓兄弟們和睦相處,決定再送他們一隻駱駝,以湊成十八隻。這樣子,老大就得了九隻駱駝,老二、老三則分別拿到六隻和兩隻。

有趣的是,三兄弟的駱駝加起來還是十七隻,多的那一隻,仍舊完璧歸趙地回到族長手中。

不少數學參考書或腦筋急轉彎之類的書籍都收錄了這則故事,實際上,它不僅僅是個數學題目而已,其中還告訴我們解決問題的智慧。


-----------------------------------------------------------------

在現實生活中也上演類似的戲碼。

演講名嘴也是教育部常委何進財先生,在他的身上就發生了一段有趣的故事。

原來何先生的老家在嘉義新港,如果從台北坐火車回嘉義的話,還要再另外花兩百元坐計程車才回得了家。

有一次何先生又坐火車返鄉,在上計程車的時候突然想到,一人搭車也是兩百,三個人坐也是這個價錢,何不再找兩位鄉親免費讓他們坐上一程呢?果然稍微詢問之下,找到兩位一同坐車回新港。

在返鄉的路上,三個人難免寒喧客套,一聊之下,才發現何先生在中央政府任職,素為鄉人所敬重。此時原先免費搭便車的兩位鄉親齊聲說道:「何桑,剛才不認識你,所以讓你出錢請我們,現在已經認識你了,就讓我出錢請
你吧!」何先生連忙搖手謙讓,三個人都搶著要出錢。

這時候計程車司機說話了:「各位鄉親,我也是新港人,這樣好了,你們每人各出一百,也都比單獨一個人坐車省一百,也讓我多拿一百,這樣子每個人都賺一百元!」在滿車歡笑中,大家一致同意。

其實解決問題有許多方法,只是在充滿競爭壓力的現代社會,我們就太習慣使用「減法」思考,意圖尋求勝負分明的結果,到最後往往以兩敗俱傷收場。

也許我們該多多學習「加法」思考,不要追求零和遊戲中必有輸贏的目標,彼此多付出一點,營造雙贏的場面,豈不是皆大歡喜嗎?

牢固人際關係的36計

第1計:如何懂得“聽人說話”是受別人歡迎的前提。
第2計:只有善於展示“真實的自己”,才能更加吸引別人對自己的注意力。
第3計:初次交往的成敗關鍵是適當的寒暄。
第4計:贏得別人對自己的信任必須先做給別人看。
第5計:與人交往注意不要過於親密,保持適當的距離,有助於友誼的持久。
第6計:微笑是增進人際關係的寶貴財富。
第7計:記住對方的姓名有助於進一步的交往。
第8計:“守時”能展現個人的良好品德。
第9計:適當的穿著打扮有助於增進人際關係。
第10計:良好的姿態,能促進雙方的交流。
第11計:恰如其分的讚美使人相交更愉悅。
第12計:與朋友相交不念舊惡,對對方的良好表現要及時地給予褒揚。
第13計:對朋友的誇獎要有度,不能過分,過度的奉承反而顯得有失誠意。
第14計:面對朋友的要求不要有求必應,而應量力而為。
第15計:朋友之間如有點小誤會,可利用“第三者”作為緩衝,以解除誤解。
第16計:學會借“第三者”的口傳達自己的仰慕之情、讚美之意。
第17計:與人交往必須把握寬嚴分寸。
第18計:養成“推己及人”的精神。
第19計:善解他人“愛屋及烏”的心理。
第20計:善用“內方外圓”的處世哲學。
第21計:學會用“忍讓” “寬容”接納他人,更能促進相互理解。
第22計:有時主動認錯,不僅不會降低自己的身份,反而提高自己的信
第23計:豁達大度方能不致傷人傷己。
第24計:“理解”不是強加別人的,而是通過自己的舉動感染別人。
第25計:直視對方,誠心誠意說:“對不起。”
第26計:“信任”是友誼的根本。 
第27計:放棄私我,從對方的利益出發,能輕易地感召他人為己所用。
第28計:寬以待人,嚴以律己。
第29計:友好相處的基礎在“與人為善”。
第30計:與人相處應當虛懷若谷。
第31計:待人必須謙虛有禮。
第32計:適時來點幽默可以化解敵意,化解緊張的氣氛。
第33計:對待朋友以寬宏大量為度。
第34計:人際往來不要害怕主動。
第35計:坦誠布公是交朋友的基本法則。
第36計:適時的“糊塗”是難得的人際關係潤滑劑。

2010年2月10日 星期三

如何關閉常駐程序

剛進入Windows就見到機器一味地打開常駐程序(注﹕常駐程序是指開機後在開始選單工具欄中時間顯示旁的小圖標,這表明只要你一開機哪些程序就會在後台全部打開)如此看來,平時不多用地的軟件每次都隨電腦的啟動而打開,大大地佔用系統資源,令電腦的性能隨之而降。
統一起啟動的程序,只要將不想啟動的程序前面的方格清空就可以了。建議將所有不用的都去掉。為安全著想,防火牆請不要去掉。
這時,我們只需到
開始>執行>msconfig 確定
"啟動"或"Startup" 就可以看到位於工具列的所有常駐程式項目,將不要的項目取消勾選,然後重新開機,就可以輕鬆移除工具列上的開機常駐程式!
附註:
如果在忘了上面的指令要如何關閉開機常駐程式呢~
你也可以到 開始>程式集>附屬應用程式>系統工具>系統資訊>工具>系統組態編輯程式(msconfig)^^方法同上
請不要把c:/windows還有c:/windows/sysetm下的選項取消喔!
否則可能造成電腦無法正常進入Win系統

IE8 Flash10d.ocx的問題

先前我IE8一直狂當
所以狂把flash重灌版本也確認沒錯誤...只是他一直給我當掉
最後給我發覺是skype在作怪

於是去把skype web future這東西給移除
結果真的不會一直當掉了
有裝skype4.1的請把那東西移除掉...

==========================


描述
失敗的應用程式路徑: C:\Program Files\Internet Explorer\iexplore.exe

問題簽章
問題事件名稱: APPCRASH
應用程式名稱: iexplore.exe
應用程式版本: 8.0.7600.16385
應用程式時間戳記: 4a5bc69e
錯誤模組名稱: Flash10d.ocx
錯誤模組版本: 10.0.42.34

No D3DX9 dll Found 解決辦法

No D3DX9 dll Found?
我在安裝Media Player Classic - Home Cinema
時候發生了這個問題
稍微去查後才發現原來MPC-HC 都是使用最新的 如(目前是d3dx9_41.dll 或未來最新的 )
而微軟只支援到前面版本
雖然他會跳出警告但還是會向下相容播放
要解決他最根本辦法
就是去微軟抓 "DirectX End-User Runtime Web 安裝程式"
自動更新程式
讓他自己更新到最新版本的 DirectX
微軟連結

2010年2月9日 星期二

blogger 使用繼續閱讀

原帖網址

安裝步驟:
1.到Blogger的控制(後台)頁面
2.「版面配置」->「網頁元素」
3.按下「新增小工具」,出現可用的小工具清單
4.找一個名稱為「 HTML/JavaScript」,按下滑鼠左鍵,會進入設定的頁面
5.「標題」欄位,請填入 ##EasyReadMore##
6.「內容」部份,請複製以下程式碼填入
======================================
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script src="http://cjh829-easy-read-more.googlecode.com/files/cjh829-easy-read-more-2.2.1.js" type="text/javascript"></script>
<script>
EasyReadMoreSettings.Enabled = true;
EasyReadMoreSettings.Read_More_Mode = 'mix';
EasyReadMoreSettings.Mode_Auto_MaxLine = 3;
EasyReadMoreSettings.Mode_Custom_Tag_Type = 'text';
EasyReadMoreSettings.Mode_Custom_Tag_Expr = '##ReadMore##';
EasyReadMoreSettings.Link_Style = 'directlink';
EasyReadMoreSettings.Link_Text = '...繼續閱讀';
EasyReadMoreSettings.Link_Text_title = '繼續閱讀';
EasyReadMoreSettings.Collapse_Link_Text = '顯示摘要...';
EasyReadMoreSettings.Collapse_Link_Text_title = '顯示摘要';
EasyReadMoreSettings.Collapse_MoveToEnd = false;
EasyReadMoreSettings.Collapse_ScrollBack_Target = 'title';
EasyReadMoreSettings.Collapse_Effect = 'none';
EasyReadMoreSettings.Collapse_Effect_Speed = 'normal';
EasyReadMoreSettings.Index_Page_Style = 'abstract';
EasyReadMoreSettings.Tag_Page_Style = 'title';
EasyReadMoreSettings.Archive_Page_Style = 'title';
EasyReadMoreSettings.Controller_Enabled = true;
EasyReadMoreSettings.Controller_Default_Position = true;
EasyReadMoreSettings.Controller_Splitter = ' | ';
EasyReadMoreSettings.Controller_Full_Text = '完整';
EasyReadMoreSettings.Controller_Abstract_Text = '摘要';
EasyReadMoreSettings.Controller_Title_Text = '標題';
EasyReadMoreSettings.ShowFullPost_Tag = '##ShowAll##';
</script>
<script>EasyReadMore.main()</script>

2010年1月30日 星期六

windows 7 Sony Ericsson 與Htc Hero

我個人手機是Sony Ericsson k750i
當我頓悟裝了 windows7之後,
正當我想要把Sony Ericsson 他附屬的同步軟體
pc suite 2.X裝上去時,發現他不給我安裝...(為啥不用6..因為支援k750只有他..)
最後找到方法是使用英文語言來安裝
事情就此告一段落


但是接踵而來的
當我拿到HTC Hero時
我也很順理成章的安裝了他的同步軟體
結果....他要我重開機
重開機完後,更好玩的出現了
我發現!我的資料夾(檔案總管)無法開啟
取而代之的出現這錯誤
問題事件名稱: appcrash
應用程式名稱: application launcher.exe
錯誤模組名稱: ntdll.dll
很好
我了解了
肯定是HTC sync出問題了
於是我把他移除安裝
想說應該解決了吧
結果...春風吹又生
接踵而來的
說我遺失 tlib_log.dll
很好害我找了好久
結論就是Sony Ericsson的PC suite惹的禍
一切都通了....萬惡根源 PC suite 2.X...
我把他移除完後 很慶幸 沒有任何錯誤發生了

Js加載加速寫法

把通常加載方式:


<script src="xxxx.js"> < /script>
改變成

<script type="text/javascript">
document.write("<scr"+"ipt src=\"xxx.js\"></sc"+"ript> ");
</script>

直接包含js解析器會當做文件來加載處理時,會優先下載js文件然後再解析html代碼
。而用document.write.js文件被當成html代碼來解析,則會同步加載html文檔和js代碼
不會影響到整個文檔加載。

搜尋此網誌