Ⅰ 怎樣在源代碼中修改android系統的屏幕默認
1、首先解決【設置】界面默認顯示【開發者選項】的問題
查看源代碼:packages/apps/Settings/src/com/android/settings/SettingsActivity.java
在updateTilesList(Listtarget)方法中,可以找到【開發者選項】相關的代碼:
else if (id == R.id.development_settings) {Log.d(LOG_TAG, =================oyp K=+showDev);if (!showDev || um.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) {removeTile = true;}}
其中showDev變數定義在該方法最開始處
因此要想特定客戶直接顯示【開發者選項】,則將showDev的值改變即可,代碼如下:
即在初始化showDev變數之前,將DevelopmentSettings.PREF_SHOW的值設置為true,那麼showDev也會是true。這樣【開發者選項】就會默認打開。那個判斷是J5客戶的方法在/frameworks/base/core/java/android/os/SystemProperties.java中定義
因為這個添加的代碼是在SecuritySettings的createPreferenceHierarchy()方法中,也就是說要進入到該Activity才生效。這樣明顯沒達到目的。
因此要和設置【USB調試】一樣,在一個接收開機廣播的廣播接收者中將Settings.Global.INSTALL_NON_MARKET_APPS設置為1。
4、找Settings裡面定義的一個接收開機廣播的廣播接收者,在AndroidManifest.xml中找到一個,當然你也可以自己定義一個這樣的廣播接收者。
<!-- Restore Rotation Receiver --><receiver android:name="com.mediatek.settings.RestoreRotationReceiver"><intent-filter></action></action></intent-filter></receiver>
因此在packages/apps/Settings/src/com/mediatek/settings/RestoreRotationReceiver.java的onReceive(Context context, Intent intent)方法中加入以下代碼:
而一開始添加的代碼可以注釋掉了。通過git diff可以看出來
diff --git a/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java b/packages/apps/Settings/src/com/android/settings/Develindex 0a987df..503270a 100755--- a/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java+++ b/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java@@ -508,15 +508,9 @@ public class DevelopmentSettings extends Context context = getActivity();final ContentResolver cr = context.getContentResolver();mHaveDebugSettings = false;-/// M: CR ALPS00244115. Lock and unlock screen, the USB debugging is unchecked.boolean isChecked = (mAdbDialog != null && mAdbDialog.isShowing()) ? true :(Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) != 0);- //added by ouyang 2015-11-10 set mEnableAdb=true if model is J5- if (android.os.SystemProperties.isJ5Version()) {- isChecked=true;- }- //added by ouyang 2015-11-10 enpdateSwitchPreference(mEnableAdb, isChecked);/// M: update usb preference againmExt.customUSBPreference(mEnableAdb);
這樣改為後,編譯,刷機後,插上USB數據線就可以開始進行adb調試了,而且可以直接安裝未知來源的apk了。
Ⅱ Spring源碼9. refreshContext()刷新應用上下文
上一篇 prepareContext()准備應用上下文 中分析了spring容器的准備, 共計執行了如下8步:
准備刷新, 執行了兩步:
清空CachingMetadataReaderFactory中的緩存
設置刷新開始事件, 設置closed為false, active為true, 標記容器處於active狀態
AbstractApplicationContext中定義了模板方法, refreshBeanFactory和getBeanFactory調用的是GenericApplicationContext中實現的方法
更新this.refreshed欄位為true, 表示已經更新了, 然後beanFactory設置serializationId, 最後返回beanFactory
beanFactory是GenericApplicationContext中DefaultListableBeanFactory類型的成員變數, 設置beanFactory, 一共執行了
後續處理各個beanFactory, 當前applicationContext是的實例, postProcessBeanFactory執行了三步
進行了兩個操作, 首先添加了一個的Aware Bean處理器, ServletContextAware的子類Bean在實例化過程中, 會被注入servletContext和servletConfig對象, 然後beanFactory中注冊了request和session兩個scopes, 注冊了幾個Autowired依賴類
注冊了request, session兩個scope, 然後注冊ServletRequest, ServletResponse, HttpSession, WebRequest
BeanFactoryPostProcessor是一個介面, 處理beanFactory中所有的bean, 在所有的beanDefinition載入完成之後, BeanFactoryPostProcessor可以對beanDefinition進行屬性的修改, 之後再進行bean實例化
是BeanFactoryPostProcessor的子介面, 定義了方法, 會在postProcessBeanFactory方法執行之前, 獲取bean定義, 並注冊到spring容器中
如果beanFactory是BeanDefinitionRegistry的子類, 按優先順序處理類型的後置處理器, 最後處理傳入的其他類型後置處理器, 處理流程如下:
如果beanFactory不是BeanDefinitionRegistry的子類, 那麼直接遍歷傳入的傳入的beanFactoryPostProcessors, 調用元素的postProcessBeanFactory方法
最後處理beanFactory中注冊的其他類型的BeanFactoryPostProcessor, 獲取bean名稱, 維護到postProcessorNames列表中, 之後的處理步驟如下:
處理了@Configuration註解, 掃描項目中的BeanDefinition, 這篇文章 詳細剖析了的源碼
BeanPostProcessor是一個介面, Bean後置處理器, 在bean實例化, 之前執行方法, 在bean實例化之後執行方法, 實現了對bean實例的增強
beanFactory中獲取BeanPostProcessor類型的bean名稱, 維護到postProcessorNames數組中, 將BeanPostProcessor列表分為四類:
beanFactory先添加一個BeanPostProcessorChecker類型的BeanPostProcessor, 然後在將各類PostProcessors列表排序, 分別添加到beanFactory的beanPostProcessor列表中, 最後再添加一個ApplicationListenerDetector
先判斷容器beanFactory中是否包含messageSource bean定義, 存在的話, 直接獲取bean, 如果不存在的話, 那麼手工注冊一個messageSource單例bean, 然後賦值給this.messageSource
先判斷容器beanFactory中是否有applicationEventMulticaster bean定義, 存在的話, 獲取bean實例, 不存在的話, 實例化一個, 手工注冊一個單例bean, 然後賦值給this.applicationEventMulticaster
AbstractApplicationContext沒有實現該方法, 用於通知子類刷新容器
調用父類GenericWebApplicationContext#onRefresh方法, 然後創建webServer, 之後調用父類GenericWebApplicationContext#initPropertySources方法, 將servletContext維護到environment的servletContextInitParams屬性中
初始化主題, 可以讓頁面顯示不同的樣式
首先將硬編碼的ApplicationListener先添加this.applicationEventMulticaster.defaultRetriever.applicationListeners中, 然後將注入的listener bean維護到this.applicationEventMulticaster.defaultRetriever.applicationListenerBeans, 最後處理earlyEvent
beanFactory.preInstantiateSingletons() 源碼剖析
什麼都沒有做
列印@Condition註解評估日誌
Ⅲ 灝忕背2 AOSP婧愮爜鏈鏂扮紪璇4.3鍘熺敓鐗堝埛鏈哄寘
鏈瑀om鍩轟簬鏈鏂癮osp婧愮爜緙栬瘧鑰屾垚浠ュ強鍩轟簬縐嬪ぇ鍐呮牳緙栬瘧銆傛劅璋浠栦滑...娣誨姞涓浜涗漢鎬у寲璁劇疆
鍒朵綔鐩稿叧 ROM鍚嶇О AOSP婧愮爜鏈鏂扮紪璇4.3鍘熺敓鐗堛愭坊鍔犳潵鐢靛綊灞炲湴鐧懼垎姣旂數閲忕姸鎬佹爮浼樺寲銆 ROM鐗堟湰 4.3 鍩轟簬鐗堟湰 AOSP4.3婧愮爜 閫傞厤鏈哄瀷 M2 ROM浣滆 zzllzz 鍥㈤槦緙栧彿闄鍘嗘厧 C4 鍙戝竷鏃墮棿 2012-08-17
ROM浠嬬粛 鍩轟簬aosp4.3鏈鏂版簮鐮佺紪璇戱紝瀹屽叏aosp綰鍑椋庢牸 娣誨姞鏉ョ數褰掑睘鍦幫紝鏇存柟渚垮疄鐢 鏈綺劇畝鐗堬紝緋葷粺鏇寸ǔ瀹 鐧懼垎姣旂數閲 wifi淇″彿鍜岀綉緇滀俊鍙風編鍖 榛樿ゅ叧闂鑷鍔ㄦ棆杞 榛樿ゅ叧闂璆PS 榛樿ゆ墦寮鏈鐭apk搴旂敤 榛樿ゆ墦寮USB璋冭瘯 more
鍒鋒満鏂規硶錛1.濡傛灉娌℃湁Recovery錛岃峰厛鍒風3鏂筊ecovery2.鍏蟲満錛屾墸鐢墊睜錛屾寜浣忛煶閲忓悜涓嬮敭+寮鏈洪敭錛岃繘鍏RECOUERY3.閫夋嫨絎鍥涢」wipe鈥杅ormat 榪涜屽弻wipe 絎鐑傞棴涓欏 絎浜岄」鑺︽暚4.閫夋嫨install zip from sdcard5.鐒跺悗閫夋嫨choose zip from sdcard6.閫夋嫨鍒鋒満鍖咃紝紜璁ゅ埛鏈7.鍒鋒満瀹屾垚鍚庯紝緋葷粺閲嶅惎錛岀涓嬈″紑鏈烘椂闂存瘮杈冮暱錛 灝忕背
Ⅳ 刷臉支付系統源碼如何安裝
1、首先,在機器上下載刷臉支付系統源碼。
2、其次,點擊注冊,登錄企業設備。
3、最後,即可安裝刷臉支付系統源碼。刷臉支付系統源碼是編寫的原始程序的代碼。
Ⅳ 華為官網提供的手機系統源代碼可以刷機使用嗎
不可以 手機源代碼和電腦的一樣,就是直接控制硬體的代碼 樓主可以去論壇找到你的機型去裡面找ROM刷就可以了