mlinqirong

Results 77 comments of mlinqirong

布局中尽量减少嵌套 如果有嵌套的话使用constainlayout布局 有共同布局的时直接使用include引入

布局中尽量减少嵌套 如果有嵌套的话使用constainlayout布局 有共同布局的时直接使用include引入

activity的启动模式有四种standard(默认),singleTask,singleTop,singleInstance standard:启动activity都会在栈中创建一个实例 singleTask:启动activity时 当任务栈中已经有实例时,使用任务栈中的实例,当没有实例时才会去创建实例 singleTop:启动activity时,当任务栈顶已经有实例时,使用任务栈顶中的实例,没有实例才去创建实例 singleInstance:启动activity时,创建一个新的栈和实例,并保证不会有其他实例 这是一个单例

ContentProvider内容提供者 实现进程间的数据交互与共享 即跨进程间通信 ContentProvider为增删改查提供了统一接口 ContentResolver通过URI的不同来操作不同的ContentProvider中的数据

ContentProvider内容提供者 实现进程间的数据交互与共享 即跨进程间通信

TCP/IP协议分为 应用层 传输层 网络层 网络接口层 TCP属于传输层 http属于应用层

TCP/IP协议分为 应用层 传输层 网络层 网络接口层 TCP属于传输层 http属于应用层

我们应用程序中的所有的类在APK打包的时候打包成了classDex文件 classDex文件如果采用分包的形式就会打包成多个classDex 所以需要一个dexElemt[]数组来对classDex做管理 把所有的classDex都存放在dexElemt中 我们应用程序中的类加载都是通过dexElemt去加载的 所以我们做修复时要把修复好的classDex重新存放到dexElemt中 在我们整个应用程序里面我们所有的代码都是被dexElemt[]数组来管理的 因为我们的程序里面有可能会用到分包 把应用程序里面的所有class文件采用分包形式打成多个classDex文件 所以使用dexElemts把所有的classDex文件添加到dexElemts数组中管理 所以热修复的原理就是通过类加载器PathClassLoader获取我们应用的dexElemt 我们应用程序的所有类都是在这个dexElemt中 然后把修复好的类打包成classDex文件 通过类加载器DexClassLoader去加载修复打包好的classDex 得到修复好的dexElemt 然后把修复的dexElemts 和当前应用程序的dexElemt进行合并 在合并的过程把修复好的 dexElemt 放在当前应用程序的dexElemt前面 当应用程序加载类时 如果加载到了修复好的类的话就不会再去加载后面相同的类了 通过这种方式实现了热修复

先通过BitmapFactory.Options 设置inJustDecodeBounds 不占用内存来获取图片信息 判断是否为大图 根据使用场景计算缩放比较 inJustDecodeBounds设置为false 传递inSampleSize缩放比例压缩图片

应用层: 编写运行在虚拟机上的应用程序 例如 浏览器 短信 电话 等应用开发程序 应用框架层: 这一层是编写应用时所使用的API框架 包括 视图管理 View管理 内容提供者 通知栏管理 包管理器 电话管理器等等 系统运行库: 当使用Android应用框架时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务,比如其中的SQLite(关系数据库),Webkit(Web浏览器引擎)。 linux内核层: Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。