「智慧生活科技專業社群」由 Nantou.py 使用者社群與國立虎尾科技大學電機資訊學院共同維護,匯集關注Python、人工智慧、物聯網與智慧生活應用的教師、學生及實務工作者。本社群以「科技融入生活、教學連結場域、知識促進共好」為核心,分享Python程式設計、AI協作學習、AIoT、網際網路與雲端服務、智慧農業、福祉科技、永續發展及USR社會實踐等內容,並將技術導入課堂、社區與真實生活場域。部分文章運用生成式AI協助資料整理、內容架構、程式範例與文字潤飾,文章主題、場域經驗、內容查核及最終修訂則由作者與社群成員負責。我們期待透過人與AI協作,讓科技成為改善生活、連結世代、支持地方與實踐永續的力量。
2011年5月31日 星期二
雙波瓣載波抑制(DSB-SC)之光學平衡偵測器
2011年5月25日 星期三
2011年5月22日 星期日
如何在 32 位元的環境編譯 Android 2.3
如果從 AOSP 網站下載 Android 2.3 後的版本,會發現編譯時似乎需要在 64 位元的環境。那麼如果已有現成的 32 位元環境,該如何編譯 Android 2.3 呢?
此時只要改動幾個 makefile 就好了。
首先,在 build/core/main.mk 找到這行:
ifneq (64,$(findstring 64,$(build_arch)))
將它改成:
ifneq (i686,$(findstring i686,$(build_arch)))
然後,分別找到以下數個 makefile,然後找到 -m64 這個,並改成 -m32。
1. external/wpa_supplicant_6/wpa_supplicant/Android.mk
2. external/clearsilver/java-jni/Android.mk
3. external/clearsilver/cs/Android.mk
4. external/clearsilver/cgi/Android.mk
5. external/clearsilver/util/Android.mk
搞定,收工。
2011年5月18日 星期三
Java Native Interface (JNI) 的使用時機及影響
繼上篇的實作後,整理一下JNI的使用時機及影響:
什麼時機下應該使用JNI
下面提出幾個項目避免使用JNI:
1、JAVA程式和本地程式使用TCP/IP或者IPC。
2、當用JAVA程式連接本地資料庫時,使用JDBC提供的API。
3、JAVA程式可以使用分散式物件技術,如JAVA IDL API。
上述三項共同點是JAVA和C 處於不同的執行緒,或者不同的機器上。這樣當C程式部分異常時,會影響到JAVA程式。
接著那何時需要使用JNI呢? 下列情況是在同一進程內無法避免JNI的使用:
1、程式當中使用到了JAVA API 沒有提供的特殊系統環境加上使用跨進程操無法不現實情況下,如與硬體進行通訊時。
2、想使用一些已經有的本地庫(native library),但又不想付出跨進程調用時的延宕(overhead),如效率,記憶體,資料傳遞方面。
3、JAVA程式當中的一部分代碼對效率要求非常高,如演算法計算,繪圖等。
總之,只有當你必須在同一進程中調用本地代碼(nativecode)時,建議使用JNI。
JNI的副作用:
1、程式失去跨平臺。如想跨平臺在不同的系統環境下須重新編譯C語言部分。
2、影響程式的穩定,本地代碼的不當使用可能導致整個程式損壞或當掉。
通用規則是應該讓本地方法集中在少數幾個類(class)中,減少JAVA和C之間的通訊。
以上詳細內容出至The Java™ Native Interface Programmer's Guide and Specification;請參閱:
1.3 Implications of Using the JNI
1.4 When to Use the JNI
2011年5月16日 星期一
Java Native Interface (JNI) Android實戰篇(使用NDK) -- HelloUart

