將自己的程式永久寫入Android的/system/bin的方法

來源:互聯網
上載者:User

Android模擬器運行之後,/system目錄即為唯讀屬性。如果想把自己的程式傳到該目錄下運行,就會發現無法成功。當然,使用adb remount命令可以暫時去除它的唯讀限制,可以向裡面傳檔案,但是一旦重啟Android模擬器,再次使用adb shell進入模擬器終端時就會發現,自己傳進去的檔案在重啟之後被清除掉了。

當然,你可以把檔案傳到/data檔案夾下,這個檔案夾不用remount就可寫,而且重啟模擬器之後自己的檔案也不會被清空。但是如果我想做一個較為底層的程式,或者開機啟動的程式,每次開機在/data下啟動總是顯得怪怪的。最好能讓自己編寫的程式也能享受到Android內建的那些程式的地位,每次運行在system/bin目錄下。這可以通過把自己的程式碼加在Android源碼中,然後重新make的方法實現。

首先根據你工程的性質,在Android源碼的相應位置建立一個檔案夾。比如我的這個程式如果和硬體有關的話,可以在hardware下建立一個叫做my_hardware的檔案夾,然後把自己的程式源碼放在裡面,比如叫hard.c。

再給這個程式寫一個makefile檔案,好讓make的時候可以自動找到你的程式並對它進行編譯。起名字叫做Android.mk,這個名字不能隨便起,否則make不認識。把這個Android.mk和hard.c都放在my_hardware下面。

# Android.mk檔案內容舉例
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \
    hard.c
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE:= myhard
include $(BUILD_EXECUTABLE)

做好這些之後,回到總的Android源碼目錄下,然後執行make,如果你之前已經make過了,那麼這個過程會很快,幾分鐘吧。因為和上一次make相比,源碼改動很少,只是加了1個檔案夾和2個檔案而已。如果你這是第一次make,那麼會比較慢,或許大約要1-2個小時,速度應該也和機器配置有關。

make成功之後,運行emulator模擬器,用adb shell進入模擬器終端,cd /system/bin,就可以找到你的程式了(注意名字是myhard,不是hard,也不是my_hardware,這裡產生的程式名字由上面程式中紅色字型的那一行控制)。而且再次啟動之後也不會丟失。

本文轉自:http://hi.baidu.com/mcu99/blog/item/954a511085280509203f2e3a.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.