Ⅰ 怎样在源代码中修改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刷就可以了