編輯:關於Android編程
android系統底層使用了linux的內核,但在文件系統上與linux有所差異。我們可以通過谷歌提供的ADB工具進入android系統的linux命令終端。但是不能執行我們在PC上通過arm-linux-gcc等交叉編譯器動態編譯出來的應用程序,比如如下指令:
arm-linux-gcc mc.c -o mc
然後用adb push將可執行程序復制到android系統/data/local中,接著改變權限:
adb shell chmod 777 /data/local/mc
最後進入/data/local目錄執行應用程序:
./mc
會提示如下:
1|root@android:/data/local # ./mc
/system/bin/sh: ./mc: No such file or directory
這就說明系統中找不到所需要的鏈接庫,而如果是在arm-linux系統下,可以順利執行。這就說明android系統中缺少linux系統中的這些依賴庫。當然如果加上-static選項靜態編譯可以解決問題,不過靜態編譯出來的文件往往比動態編譯出來的文件大幾十倍,一個簡單的makefile可能會到五百多KB。對於長久來看這是很不劃算的。我們可以從linux的文件系統中找到這些庫。方法如下:
首先在linux源碼中找到文件系統壓縮包:file_system.tar.gz。
解壓
tar xzvf file_system.tar.gz
然後復制lib裡面的所有內容到android的/lib目錄下:
adb push lib /lib
這時候,linux裡的庫文件就可以在android中找到了。這時候回到android系統的/data/local目錄,再次執行即可執行靜態編譯的文件了。
另外,如果在linux系統下,我們可以通過配置環境變量或者將mc可執行文件放到/bin目錄下,這樣可以在任何路徑下執行這個命令。那麼在android系統中有沒有類似操作呢?當然是可以的,我們將可執行文件mc放在/system/bin目錄下即可,是不是很方便呢?
大家如果還有什麼疑問可以在下面留言,大家共同探討~~
顧名思義Camera就是拍照和錄像的功能,像微信裡面,我們想拍照傳一下照片,就可以通過camera來拍照,然後存儲照片,發送給好友。那麼微信的app裡面是不會直接通過ca
這裡用的mac版本的AndroidStudio1. 執行組合快捷鍵command+”,”,打開AS偏好設置頁面,找到plugin選項,輸入Parc
EventBus是個什麼東西?有什麼用? EventBus是一個發布 / 訂閱的事件總線。簡單點說,就是兩人約定好怎麼通信,一人發布消息,另外一個約定好的人立馬接收到你發
寫在前面現在,越來越多的App裡面使用了模糊效果,這種模糊效果稱之為高斯模糊。大家都知道,在Android平台上進行模糊渲染是一個相當耗CPU也相當耗時的操作,一旦處理不
前言在前2篇文章中,我們都說到著色器,且在第二篇中正式說到,這著色器只能