1. 程式人生 > >Android不能呼叫java.awt的原因及解決辦法和思考

Android不能呼叫java.awt的原因及解決辦法和思考

android 裡面不能使用awt,底層沒有具體的實現awt

android裡面的視窗建立過程決定了介面只能是android裡面的組建。
android的元件都是通過遠端的IPC呼叫完成的,也就是說服務端有什麼功能才能用什麼功能。
不是所有用java寫的程式都能在標準jvm中執行的。
android中的虛擬機器是修改過的,跟標準的JVM不同,比如對一張圖片的解析,android裡用Bitmap,而你想用其他方式,那麼在android底層裡並不能對你這種方式進行解析並勾畫出具體介面。

只有編寫android JVM能夠解析的程式碼,android才能執行,所以,如果遇到android底層沒有實現的程式碼,需要用android裡的東西去重構,可以根據自己的需求做一定的更改。

比如如下一個java.awt中的BufferedImage,這裡它的原始碼大概是這樣:






如果再你的專案中依然想用到BufferedImage,這裡你可以這樣改寫,使用android底層能夠支援的方法介入:




當然,其中如果有其他的類是android底層不支援的,你也需要進行重構,如此直到所有的類都是android能夠“認識”的,那麼恭喜你,這些程式碼可以在Android裝置上跑起來了。