美文网首页Android开发经验谈
GitHub标星5.8K,阿里P7-深入解析android核心组

GitHub标星5.8K,阿里P7-深入解析android核心组

作者: 进阶程序员007 | 来源:发表于2020-11-12 17:33 被阅读0次

一.深入解析android核心组件和应用框架

1.listView下空列表的显示问题.重写适配器的isEmpty(),或HoneyComb中主要是通过ListFragment的setEmptyText();
2.InputMethodService ,一种输入法在界面上由3部分构成,即软输入视图(Soft InputView)、候选视图(Candidates View)和全屏模式(Fullscreen Mode).
3.IntentService,在gallery3d应用中,CacheService即是IntentService的一个示例.
4.绑定服务的Android组件在销毁前应解除绑定,否则会造成内存泄漏.
5.pendingIntent,
6.(应用框架解析,service框架)基于AIDL的远程服务(在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android中, 则采用AIDL的方式. )
7.(应用框架解析,service框架)基于Messenger的远程服务
8.(应用框架解析,activity管理机制),acitivity栈和Task的定义和区别,以及android:taskAffinity属性
9.对话框框架,按照Android的规则,每个对话框对应一个对话框ID.

二.Android资源框架详解

1.sp和dip有相似的含义,与屏幕上每平方英寸含多少像素无关.
2.特殊标签:viewStub/requestFocus/merge/include
3.android支持XLIFF(XML Localization Interchange File Format)和通配符(在一个字符串标签中android仅支持一个通配符).
4.切换语言的实现:
Resources resources = getResources();
Configuration config = resources.getConfiguration();
DisplayMetrics dm = resources.getDisplayMetrics();
config. locale = Locale.SIMPLIFIED_CHINESE;
resources.updateConfiguration(config, dm);
通过类似的设置,开发者也可以切换屏幕密度、MCC、MNC、屏幕方向等,当然部分设置可能需要高级别的权限。
5.string资源文件中,如果该字符串资源不必本地化,则需要设置其translatable属性为fasle;
6.系统资源在frameworks\base\core\res\res\values\目录下的public.xml中定义.
7.android允许属性支持多种属性格式。
8.MenuInflater在加载XML资源文件时采用的解析器为XmlPullParser.处于性能方面的考虑,目前MenuInflater尚不支持加载未经处理的XML资源文件.
9.如果希望显示菜单的内容,onPrepareOptionsMenu()方法必须返回true,否则返回false.
10.子菜单不支持图标和二级子菜单.
11.PopupMenu.当菜单被销毁时,通过PopupMenu.OnDismissListener可以监听到菜单被销毁的消息.
12.asset,断言中限制文件大小为1MB.同样在res和raw下的资源文件也有这样的限制.在android中,断言的管理是通过AssetManager进行的.
13.在启动其他应用嵌,需要在zygote进程中奖先加载的图片资源定义在arrays.xml中的preloaded_drawables数组中,将颜色资源定义在arrays.xml中的preloaded_color_state_lists数组汇总,状态栏加载的顺序定义在arrays.xml中的status_bar_icon_order数组中.

设计思想解读开源框架

一、热修复设计
二、插件化框架设计
三、组件化框架设计
四、图片加载框架
五、网络访问框架设计
六、RXJava响应式编程框架设计
七、IOC架构设计
八、Android架构组件Jetpack



由于简书限制网盘链接,在我主页扫描我的二维码,我免费分享给你

相关文章

网友评论

    本文标题:GitHub标星5.8K,阿里P7-深入解析android核心组

    本文链接:https://www.haomeiwen.com/subject/hhmpbktx.html