android新增開機聲音
frameworks/base/cmds/bootanimation/bootanimation.h
frameworks/base/cmds/bootanimation/bootanimation.cpp
frameworks/base/cmds/bootanimation/bootanimation_main.cpp
frameworks/base/cmds/bootanimation/Android.mk
另外要準備一個wav格式的開機音樂檔案(時間不要太長了)
在bootanimation.h檔案中增加如下程式碼:
class BootAnimation : public Thread, public IBinder::DeathRecipient
{
public:
BootAnimation();
virtual ~BootAnimation();
void bootMusic(); //Xandy 2013/03/22
sp<SurfaceComposerClient> session() const;
.
.
.
在bootanimation.cpp中增加相應的實現方法
void BootAnimation::bootMusic()
{
int index;
MediaPlayer* mp = new MediaPlayer();
if (mp->setDataSource("/system/media/audio/ui/boot.wav", NULL) == NO_ERROR)
{
mp->setAudioStreamType(AudioSystem::ENFORCED_AUDIBLE);
mp->prepare();
}
AudioSystem::getStreamVolumeIndex(AudioSystem::ENFORCED_AUDIBLE, &index);
if (index != 0)
{
mp->seekTo(0);
mp->start();
}
}
注意:這裡我將開機音樂檔案copy到了/system/media/audio/ui/boot.wav這個目錄下面,可以在相應的vendor目錄下面的AndroidBoard.mk裡增加如下指令碼程式碼:
# Bootsound
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/boot.wav:system/media/audio/ui/boot.wav
有了相應的實現方法和音樂檔案,下面要在某個地方呼叫到我們實現的方法,這裡呼叫的地方緊跟bootanimation呼叫的地方,在bootanimation_main.cpp裡:
增加紅色部分程式碼:
int main(int argc, char** argv)
{
#if defined(HAVE_PTHREADS)
setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_DISPLAY);
#endif
char value[PROPERTY_VALUE_MAX];
property_get("debug.sf.nobootanimation", value, "0");
int noBootAnimation = atoi(value);
LOGI_IF(noBootAnimation, "boot animation disabled");
if (!noBootAnimation) {
sp<ProcessState> proc(ProcessState::self());
ProcessState::self()->startThreadPool();
// create the boot animation object
sp<BootAnimation> boot = new BootAnimation();
//play boot boot music -Xandy
BootAnimation *animation = new BootAnimation();
animation->bootMusic();
IPCThreadState::self()->joinThreadPool();
}
return 0;
}
在bootanimation的Android.mk檔案中加入音樂播放需要的shared libs
LOCAL_SHARED_LIBRARIES := \
libcutils \
libutils \
libbinder \
libui \
libskia \
libEGL \
libGLESv1_CM \
libsurfaceflinger_client \
libmedia
最後終端進入到frameworks/base/cmds/bootanimation/目錄,執行mm 將會模組編譯出相應的bootanimation bin檔案!
提一句:
喜歡DIY的朋友可以把這個檔案copy出來,找一首自己喜歡的開機音樂,按照上面所說的音樂存放目錄把開機音樂放入自己的手機中,並把所得的bootanimation這個bin替換掉自己手機/system/bin目錄下的bootanimation檔案(之前一定要先備份原來的bootanimation,不然出了問題,我不負責啊!!),並把這個檔案的許可權設定成777
可以adb shell下面分別執行如下命令:
su
chmod 777 /system/bin/bootanimation
開機音樂存放目錄:/system/media/audio/ui/boot.wav
音樂檔名只能是boot.wav!!!!
下面提供本人編譯出來的bootanimation檔案,下載地址:
相關推薦
android新增開機聲音
涉及檔案: frameworks/base/cmds/bootanimation/bootanimation.h frameworks/base/cmds/bootanimation/bootanimation.cpp frameworks/base/cmds/bootanimation/bootanimat
android新增開機音樂
http://wenku.baidu.com/view/d8b12044a8956bec0975e34a.html forevery: 以下可在cm7中試驗,但無效果。 1. 解壓縮附件,拷貝至 /system/bin,修改許可權:644 2. 將底下分隔線之間的內容加入/system/etc/init.lo
marsboard Android 4.4 新增開機自動設定靜態IP地址
最近在幫忙除錯Android裝置marsboard,需求就是開機設定靜態IP地址。 除錯過程與查找了很多資料,經過兩天的測試終於成功了。 首先,init.rc檔案最後新增開機自啟動: on property:sys.boot_completed=1 //系統啟動完成後
Android:新增開機啟動自定義指令碼
新增開機啟動自定義指令碼 之前也一直做過類似的事情,但是沒有記錄,這裡做個簡單記錄,我這裡的例子是在Android7.1.2中實現的,用的板子是參考Quectel-SC60(基於高通平臺的64位SoC:msm8953)設計的,之前做的也有其他平臺的,但都大同小異(可能
Android新增一個開機完成後執行的指令碼
在調式一個模組驅動的時候載入驅動模組失敗,但是在系統起來後可以手動載入成功,因此想到在android 啟動完成後通過 執行指令碼來載入驅動模組 1.編寫相關的指令碼,比如device/softwinner/common/prebuild/tools 在該目
[Android]新增自定義開機動畫(視訊)並去黑屏
補丁如下 原始碼分析及修改方式 關於開機動畫的流程主要程式碼在 framebuffer/base/cmds/bootanimation/bootAnimation.cpp 從 BootAnimation::threadLoop()
Android 8.0 新增開機啟動指令碼
[ 10.368517] type=1400 audit(1483292256.112:14): avc: denied { execute_no_trans } for pid=2768 comm="prepare_ds.sh" path="/vendor/bin/toybox_vendor" dev=
Android Notification 的聲音和震動
.com second attribute roc 聲音播放 lis rfc 震動 processor 我們在Android系統發送一條Notification的時候,經常需要通過震動或聲音來提醒用戶。如何為Notification設置聲音和震動了。大致思路有: -
Android新增的註解
父類 參數 內存 信息 studio 重復 添加 tag threading 環境 使用Android註解前需要導入相關的包 compile ‘com.android.support:support-annotations:latest.integration‘ 註意
Android新增控件
build tro mpi view dep 添加 gradle blog gpo 百分比布局 添加方法:打開app/build.gradle文件,在dependencies閉包中添加如下內容: dependencies{
Android系統開機慢的問題(升級後第一開機慢)
系統開機慢的問題,採用User-Debug 的模式編譯,要編譯出來ODEX 來優化這個開機時間 那第一開機的時候為什麼會慢呢,在網上百度找到了一個大牛對此的分析,我這裡貼出來 引用自:http://ticktick.blog.51cto.com/823160/1677216/ 在
【Linux】Ubuntu 利用 update-rc.d命令 新增開機啟動服務
複製或軟連線指令碼到/etc/init.d/目錄下 將指令碼新增到初始化執行的佇列中去 注意如果指令碼需要用到網路,則NN需設定一個比較大的數字,如99。 命令:update-rc.d xxx defaults NN命令 #(NN為啟動順序) ubuntu 16.04中
Android 手機開機密碼破解鎖定
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
用批處理檔案在登錄檔中新增開機啟動項
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v myauto /t REG_SZ /d C:\1.bat /f /v 新增的鍵名 /t REG_SZ  
centos7下新增開機啟動
在/etc/systemd/system下建立weblogic .Service touch weblogic.Service 新增啟動許可權 chmod +x weblogic.Service 編輯weblogic.Service vim weblogic.Servic
Ubuntu下新增開機啟動項
方法:編輯rc.local指令碼 原理: Ubuntu開機之後會執行/etc/rc.local檔案中的指令碼, 所以我們可以直接在/etc/rc.local中新增啟動指令碼。 當然要新增到語句:exit 0 前面才行。 例:開機啟動wifi控制軟體nm-applet 1.開啟rc.l
Ubuntu新增開機自動啟動程式的方法
1. 開機啟動時自動執行程式 Linux載入後, 它將初始化硬體和裝置驅動, 然後執行第一個程序init。init根據配置檔案繼續引導過程,啟動其它程序。通常情況下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的指令碼檔案,可以使init自動啟動其它程式。例如:
Android 新增選單和返回按鈕
在toolbar上新增選單和返回按鈕 1. 新增選單 1.1 新建menu檔案 右擊res資料夾新建 Android resource dictionary,新建menu資料夾 右擊menu資料夾新建Menu resource file,輸入名稱 1.2 設定選單按鈕 &l
新增開機後自動執行指令碼
環境: centos 開放埠 為了部署nginx http服務,開發80埠: iptables -I INPUT -p tcp --dport 80 -j ACCEPT iptables -I INPUT -p tcp --sport 80 -j ACCEPT service
Ubuntu新增開機啟動執行指令碼
原文:https://blog.csdn.net/upshi/article/details/53884770 Ubuntu新增開機啟動執行指令碼 方法一:編輯rc.loacl指令碼 Ubuntu開機之後會執行/etc/rc.local檔案中的指令碼, 所以我們可以直接在/etc/rc.lo