- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 uni-app async/await优化启动流程
uni-app async/await优化启动流程App启动流程需求流程图一种实现方式Async/Await改进方法弹框组件使用Promise方式异步请求Promise包装最终方案App启动流程通常我们App在进入首页时,都需要做一些初始化工作,如申请权限,从服务器获取数据(user信息,App配置信息等),sdk初始化等。一般的App可能包含下面几个步骤:用户协议和隐私政策(首次启动展示,需要用户同意才可进入app)权限申请用户登录状态判断3.1 未登录跳转登录页面3.2 已登录获取用户信
2021-06-17 18:40:28 1423 2
转载 Vold源码分析
本文转载自:http://blog.csdn.net/gaugamela/article一、Vold工作机制Vold是Volume Daemon的缩写,它是Android平台中外部存储系统的管控中心,是管理和控制Android平台外部存储设备的后台进程。其功能主要包括:SD卡的插拔事件检测、SD卡挂载、卸载、格式化等。如上图所示,Vold中的Netlin
2017-11-22 20:09:37 926
原创 Android N installd与PackageManagerService
Android系统中应用的安装卸载都是通过调用PackageManagerService来完成的,但在PKMS中,对于目录的创建、文件copy、dex优化都是通过调用底层的installd来完成的。至于为什么不直接在PKMS中进行文件的操作,主要是涉及到权限的问题,PKMS只有system的权限,而installd的作用就是处理需要root权限的操作。1. installd启动Instll
2017-11-22 18:07:40 1016
原创 Android 7.0 卸载APK源码分析
* The key steps in deleting a package are* deleting the package information in internal structures like mPackages,* deleting the packages base directories through installd* updating mSettings to reflect current status* persisting settings for late
2017-11-16 23:00:04 2785
原创 PackageManagerService安装lib库
APP开发都会用到动态链路库,即so库。在代码中通常通过System.loadLibrary()来加载so库,但也经常会碰到App在一些手机上没有问题,在另外一些手机上使用时出错,如java.lang.UnsatisfiedLinkError,就是和动态链路库加载错误有关。想要解决这类问题,就要了解系统在安装APK的时候是如何处理so库的。下面从源码上分析这一过程。 在安装APK时,若A
2017-09-02 14:18:13 1020
原创 LeeCode String to Integer (atoi)
class Solution { public int myAtoi(String str) { str = str.trim(); if(str == null || str.length() == 0) return 0; int length = str.length(); int isNegative =1; in
2017-08-29 17:24:00 261
原创 LeeCode ZigZag Conversion
public class Solution { public String convert(String s, int numRows) { if(s == null || s.length()==0 || numRows return ""; if(numRows == 1) return s; S
2017-08-08 22:52:49 168
原创 PackageManagerService安装APK流程
Android手机安装APK有几种方式通过ADB安装通过应用商店安装通过把APK放在手机目录,手动安装,这种安装方式有安装界面 这三种安装方式都是调用了PKMS的借口,到PKMS后流程都是相同的,这里主要介绍下通过应用商店安装APK的流程。从应用商店下载APK后会调用PackageManagerService的installPackage()方法。
2017-08-06 10:28:08 1504
原创 LeeCode Longest Palindromic Substring
public class Solution { public String longestPalindrome(String s) { boolean table[][] = new boolean[s.length()][s.length()]; int resI = 0; int len = 1; int maxLen = 1;
2017-07-30 15:35:09 174
原创 PackageManagerService Intent匹配查询
PKMS除了负责应用的安装、更新、卸载之外,同时也对外提供信息的查询。例如查询系统中匹配某Intent的Activities、Services等。本文就以Activity为例,分析PKMS如何通过Intent查询Activity。本文分为三个部分:1. Activity信息的保存2. Intent查询Activity的规则3. PKMS通过Intent查询Activit
2017-07-29 16:36:43 1063
原创 LeeCode Median of Two Sorted Arrays
public class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int length1 = nums1.length;int length2 = nums2.length;int length = length1 + length2;ArrayL
2017-07-07 00:32:17 171
原创 LeeCode Longest Substring Without Repeating Characters
public int lengthOfLongestSubstring(String s) { int length = s.length(); if(length == 0) return 0; int p=0; int q=1; int max = 1; int isEqua
2017-06-28 00:26:40 151
原创 LeeCode And Two Numbers
public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { if(l1 == null) return l2; if(l2 == null) return l1; int carry = 0;
2017-06-27 00:13:55 203
微波工程第三章
2013-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人