æè·¯ï¼
1.linuxä¸åä¸ä¸ªcç¨åºgameplug.cï¼æ¤ç¨åºè´è´£è¯»åé
ç½®æä»¶ï¼å®æç¨æ·å®ä¹çä¸ç³»åæä½ã
2.init.rc䏿·»å æå¡ï¼è¯¥æå¡å¯å¨gameplug.c
3.frameworkç¨é³é+/-å¼å¯/å
³éæå¡ã
4.settingsä¸å¢å gameplugçéé¡¹ï¼æå¼åé³é+/-é®ç¨ä½å¯å¨/å
³éèæ¬æå¡ï¼å
³éå忣叏é³é+/-ç¨
æµç¨ï¼
1.å好èªå·±çlinuxæå¡ç¨åº
android\system\core\toolbox\gameplug.c
ä¿®æ¹android\system\core\toolbox\Android.mkï¼å¢å gameplug.cçç¼è¯é项
2.å¶ä½libgameplug.soä¾ä¸å±è°ç¨
æ°å»ºandroid\system\core\libgameplug\æä»¶å¤¹ï¼å¢å gameplug.cåAndroid.mkï¼gameplug.cè´è´£å¯å¨
android\system\core\include\gameplug\gameplug.hï¼åJNIçæ¥å£
èªå·±æ·»å çèªå®ä¹soæä»¶åºå¨ç¼è¯çæ¶ååºç°ä»¥ä¸é误
-----------------------------------------------------------------------------
build/core/base_rules.mk:78: *** Module name: libgameplug
build/core/base_rules.mk:79: *** Makefile location: system/ibcom/gameplug
build/core/base_rules.mk:80: *
build/core/base_rules.mk:81: * Each module must use a LOCAL_MODULE_TAGS in its
build/core/base_rules.mk:82: * Android.mk. Possible tags declared by a module:
build/core/base_rules.mk:83: *
build/core/base_rules.mk:84: * optional, debug, eng, tests, samples
build/core/base_rules.mk:85: *
build/core/base_rules.mk:86: * If the module is expected to be in all builds
build/core/base_rules.mk:87: * of a product, then it should use the
build/core/base_rules.mk:88: * "optional" tag:
build/core/base_rules.mk:89: *
build/core/base_rules.mk:90: * Add "LOCAL_MODULE_TAGS := optional" in the
build/core/base_rules.mk:91: * Android.mk for the affected module, and add
build/core/base_rules.mk:92: * the LOCAL_MODULE value for that component
build/core/base_rules.mk:93: * into the PRODUCT_PACKAGES section of product
build/core/base_rules.mk:94: * makefile(s) where it's necessary, if
build/core/base_rules.mk:95: * appropriate.
build/core/base_rules.mk:96: *
build/core/base_rules.mk:97: * If the component should be in EVERY build of ALL
build/core/base_rules.mk:98: * products, then add its LOCAL_MODULE value to the
build/core/base_rules.mk:99: * PRODUCT_PACKAGES section of
build/core/base_rules.mk:100: * build/target/product/core.mk
build/core/base_rules.mk:101: *
build/core/base_rules.mk:102: *** user tag detected on new module - user tags are only supported on legacy modules. Stop.
-----------------------------------------------------------------------------
éè¦å¨android\build\core\user_tags.mk䏿·»å ä½ å¨Android.mkä¸LOCAL_MODULEå®ä¹çåå
è¿éæ¯LOCAL_MODULE := libgameplug
3.init.rcå¢å service gameplug
android\system\core\rootdir\init.rc
service gameplug /system/bin/gameplug
disabled
oneshot
4.注åframeworkå±JNIæ¥å£å½æ°
æ·»å android\frameworks\base\services\jni\com_android_server_GameplugService.cpp
ä¿®æ¹ android\frameworks\base\services\jni\onload.cpp
ä¿®æ¹ android\frameworks\base\services\jni\Android.mk
ä¿®æ¹ android\frameworks\base\services\java\com\android\server\SystemServer.java
ä¿®æ¹ android\frameworks\base\services\java\com\android\server\GameplugService.java
å¢å android\frameworks\base\core\java\android\os\IGameplugService.aidl
ä¿®æ¹ android\frameworks\base\Android.mk
5.æ§å¶,volume+ start , volume- stop
ä¿®æ¹ android\frameworks\base\media\java\android\media\AudioManager.java
6.package/app/settingså¢å é项enable/disbale gameplugï¼æå¼æ¤é项åé³é+/-å½å¯å¨/å
³égameplugç¨ï¼å
³éæ¤é¡¹è¿åé³éé®ä½¿ç¨
ä¿®æ¹ android\packages\apps\Settings\res\values\strings.xml
ä¿®æ¹ android\packages\apps\Settings\res\xml\display_settings.xml
ä¿®æ¹ android\packages\apps\Settings\src\com\android\settings\DisplaySettings.java
ããä¿®æ¹ android\frameworks\base\core\java\android\provider\Settings.java
7.ç¼è¯
make update-api
make android