pxfile Blog

Thinking will not overcome fear but action will.

Android动态加载

Android动态加载

Android动态加载 什么是动态加载 动态加载技术(也叫插件化技术)在技术驱动型的公司中扮演着相当重要的角色,当项目越来越庞大的时候,需要通过插件化来减轻应用的内存和CPU占用,还可以实现热插拔,即在不发布新版本的情况下更新某些模块。动态加载是一项很复杂的技术,这里主要介绍动态加载技术中的三个基础性问题,至于完整的动态加载技术的实现请参考笔者发起的开源插件化框架DL:。项目期间有多位开...

线程间操作List

线程间操作List

线程间操作List package com.hlss; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 类描述:多线程处理List * @author Calvin Wu */ public class MultiThread { // 用...

HashMap、ConcurrentHashMap和SynchronizedMap – 哈希表对比

HashMap、ConcurrentHashMap和SynchronizedMap – 哈希表对比

HashMap、ConcurrentHashMap和SynchronizedMap – 哈希表对比 在Java中,HashMap是一个非常有用的数据结构。几乎每一个Java应用都会使用到它。我之前的博文中有介绍过如何实现一个线程安全的缓存,在这个例子中,我就使用到了HashMap。然而,需要注意的是,HashMap本身并不是一个线程安全的Collection类。 常见问题 Con...

BroadcastReceiver与LocalBroadcastManager应用及区别

BroadcastReceiver与LocalBroadcastManager应用及区别

BroadcastReceiver与LocalBroadcastManager应用及区别 android中有两种广播机制,一种是BroadcastReceiver,另一种是LocalBroadcastManager。现在来简单介绍一下两者。 一、应用场景 1、BroadcastReceiver用于应用之间的传递消息; 2、而LocalBroadcastManager用于应用内部传递消...

Binder机制

Binder机制

Binder机制 Binder 直观来说,Binder是Android中的一个类,实现了IBinder接口。从IPC角度来说,Binder是Android中的一种跨进程通信的方式。从Android Framework角度老说,Binder是ServiceManager连接各种Manager(ActivityManager,WindowManager等)和相应ManagerService的桥梁...

App启动流程

App启动流程

App启动流程 用户点击Home上的一个App图标, 启动一个应用时: app launch Click事件会调用startActivity(Intent), 会通过Binder IPC机制, 最终调用到ActivityManagerService. 该Service会执行如下操作: 第一步通过PackageManager的resolveIntent()收集这个intent...

SharedPreferences 多进程解决方案

SharedPreferences 多进程解决方案

SharedPreferences 多进程解决方案 SharedPreferences支持进程同步吗?怎么让它支持 1. SharedPreferences不支持进程同步 一个进程的情况,经常采用SharePreference来做,但是SharePreference不支持多进程,它基于单个文件的,默认是没有考虑同步互斥,而且,APP对SP对象做了缓存,不好互斥同步. MODE_MUL...

热修复,插件化

热修复,插件化

热修复,插件化 插件化相关技术,热修补技术是怎样实现的,和插件化有什么区别 相同点:     都使用ClassLoader来实现的加载的新的功能类,都可以使用PathClassLoader与DexClassLoader 不同点:     热修复因为是为了修复Bug的,所以要将新的同名类替代同名的Bug类,要抢先加载新的类而不是Bug类,所以多做两件事:在原先的app打包的时候,阻止...

App启动优化

App启动优化

App启动优化 应用的启动方式 通常来说,启动方式分为两种:冷启动和热启动。 1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。 2、热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已...

Android动态布局

Android动态布局

Android动态布局 Android静态和动态布局 android将布局与具体操作分为xml文件和java文件,xml文件主要负责布局,但是xml文件完成的所有任务java文件都是可以完成的,并且解析xml文件也是需要资源的,只不过google推荐这样使用,一是为了界面和逻辑分离,二是xml的逻辑控制很方便。所以牺牲一点资源来解析xml文件是可取的。 我将其分为静态布局和动态布局(也可...