jamousjang
码龄14年
关注
提问 私信
  • 博客:32,427
    32,427
    总访问量
  • 17
    原创
  • 515,445
    排名
  • 1,546
    粉丝
  • 9
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2011-05-11
查看详细资料
个人成就
  • 获得14次点赞
  • 内容获得5次评论
  • 获得89次收藏
创作历程
  • 5篇
    2020年
  • 14篇
    2019年
  • 2篇
    2018年
成就勋章
兴趣领域 设置
  • 网络空间安全
    系统安全
创作活动更多

仓颉编程语言体验有奖征文

仓颉编程语言官网已上线,提供版本下载、在线运行、文档体验等功能。为鼓励更多开发者探索仓颉编程语言,现诚邀各位开发者通过官网在线体验/下载使用,参与仓颉体验有奖征文活动。

368人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

art 的 Space

staticconstexpr space::LargeObjectSpaceType kDefaultLargeObjectSpaceType =USE_ART_LOW_4G_ALLOCATOR ?space::LargeObjectSpaceType::kFreeList: space::LargeObjectSpaceType::kMap; heap 初始化的时候large_object_space_type 取值由kDefaultLargeObjectSpaceTyp...
原创
发布博客 2020.05.22 ·
638 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

art的bitmap使用

bitmap的原理bitmap是一块内存,利用其中的每一位去标记对应的内存是否被使用,1为被使用,0位没有使用。SpaceBitmapart中使用SpacBitmap 对heap进行标记,我们看下spaceBitmap的重要逻辑a. Creat函数初始化 -----------Create------------------------------------------------- SpaceBitmap<kAlignment>* SpaceBit.
原创
发布博客 2020.05.22 ·
380 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Art GC cause

目前Art定义的触发GC的cause cause type cause comment kGcCauseForAlloc Alloc GC triggered by a failed allocation. Thread doing allocation is blocked waiting for GC beforere trying allocation. 对象内存分配失败触发GC,正在请求分配的线程会等待GC完..
原创
发布博客 2020.05.22 ·
553 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Android Q 开机启动流程

开机启动概述:step 1: 上电开机长按power键后引导芯片开始从固化在ROM的预设代码处执行,加载引导程序(BootLoader)到RAM.step 2: BootLoader启动跳转到BootLoader的入口函数,开始执行BootLoader的代码.硬件初始化工作(硬件时钟、手机的主板等)完成初始化uart端口的操作arch_inittarget_inita...
原创
发布博客 2020.05.22 ·
3848 阅读 ·
3 点赞 ·
2 评论 ·
25 收藏

Android Art Gc - 概述

基于Android Q源码:1.GC 回收算法GC目前只有四种基本方法:(1)Mark-Sweep Collection 标记清除算法(2)Copying Collection 复制算法(3)Mark-Compact Collection 标记-压缩算法(3)Reference Counting 引用计数算法--未被art采用目前art默认使用的GC方案:concurrent...
原创
发布博客 2020.01.08 ·
2036 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

C/C++内存对齐详解

1、什么是内存对齐还是用一个例子带出这个问题,看下面的小程序,理论上,32位系统下,int占4byte,char占一个byte,那么将它们放到一个结构体中应该占4+1=5byte;但是实际上,通过运行程序得到的结果是8 byte,这就是内存对齐所导致的。//32位系统#include<stdio.h>struct{ int x; char y;}s;...
转载
发布博客 2019.12.13 ·
178 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Linux 线程同步之信号量sem

信号量和互斥锁(mutex)的区别:互斥锁只允许一个线程进入临界区,而信号量允许多个线程同时进入临界区。需要包含头文件semaphore.h。主要用到的函数:int sem_init(sem_t *sem, int pshared, unsigned int value);,其中sem是要初始化的信号量,pshared表示此信号量是在进程间共享还是线程间共享,value是信号量的初始值...
转载
发布博客 2019.10.15 ·
214 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Arm 基础-寻址方式

1.ARM处理器寻址方式寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。ARM处理器具有9种基本寻址方式。(1).寄存器寻址 (2).立即寻址 (3).寄存器偏移寻址 (4).寄存器间接寻址(5).基址寻址 (6).多寄存器寻址 (7).堆栈寻址 (8).块拷贝寻址(9).相对寻址(1)....
原创
发布博客 2019.08.28 ·
2169 阅读 ·
5 点赞 ·
0 评论 ·
16 收藏

Linux进程状态

Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行队列...
转载
发布博客 2019.08.22 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Google继Project Treble后的大动作:Android Q系统组件更新机制APEX

一直以来,与iOS相比,Android在性能、安全、功耗、碎片化(兼容性)问题上一直被诟病。知耻而后勇,知弱而图强。自Android4.0以来,Google一直致力于解决性能(Project Butter/OpenGLRenderer/RenderThread/ART)、安全(SELinux/FDE/FBE/VerifiedBoot)、功耗问题(Project Volta/Doze/App...
转载
发布博客 2019.07.16 ·
2189 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Android 7.0平台开机启动

Android 启动概述Android 系统是运行在Linux 内核上的,所以它的启动过程则是基于kernel的启动发生的。首先Kernel启动过程中会创建用户空间的第一个进程init进程,该进程也是用户空间的鼻祖,是系统的守护进程。之后init进程会启动serviceManager,它则是bind的服务管家,后续启动的许多系统或用户service都会在它里面进行注册。然后init进程也会创建Z...
原创
发布博客 2019.07.14 ·
2889 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Activity启动流程-AMS

Activity的启动的基本介绍因为关于AMS内部类的关系,例如stack、task,已有了相关的文档做介绍,本文不再赘述细说,基于相关文档以及代码的学习,本文主要集中篇幅集中于第三章,描述在Activity进程的启动流程中,启动应用进程以及应用进程中启动Activity的流程,也就是Activity启动的后半段流程。第二章关于Activity启动的前期准备主要涉及AMS的重点地方也会做详细描述...
原创
发布博客 2019.07.14 ·
630 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Android 杀应用进程的代码分析

杀死应用进程的代码分析之前在Android AMS启动Activity流程一文有写过进程启动的流程,这里不再赘述,这一章主要跟踪下杀进程的处理方式和流程。启动涉及到SING_QUIT3信号的处理,因为涉及trace的dump则单独在下一章说明。 用户空间杀进程 Process.java 官方的解释Tools for managing OS processes,之前在进程启动的时候AMS...
原创
发布博客 2019.07.14 ·
3972 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

Android 8.0 ContentProvider的学习和分析

ContentProvider的介绍和应用使用方法 如何使用ContentProvider ContentProvider 组建主要用于 Android 系统中不同应用程序间的数据交换.例如应用程序 A 通过 ContentProvider 暴露内部的数据, 应用程序B 通过 ContentResolver 和 A 提供的 Uri 来操作(增, 删 改, 查) A 的数据.如何创建一个c...
原创
发布博客 2019.07.14 ·
1051 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Android 8.0 手机亮灭屏

本文主要跟踪分析通过按松power键来唤醒,熄灭屏幕的逻辑。下面是一些相关类的介绍PowerManagerService.java:简称PMS,负责Andorid系统中电源管理方面的工作。作为系统核心服务之一,主要处理系统中与power相关的计算,然后决策系统该如何反应。同时PowerManagerService与其他服务及HAL层等都有交互关系,协调power如何与系统其他模块的交互,比如没...
原创
发布博客 2019.07.14 ·
1920 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

android 线程级别

Priority Value Description ANDROID_PRIORITY_LOWEST 19 可以使用最后的 ANDROID_PRIORITY_BACKGROUND 10 用于background task...
原创
发布博客 2019.07.12 ·
894 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

字符串排序问题

题目描述编写一个程序,将输入字符串中的字符按如下规则排序(一个测试用例可能包含多组数据,请注意处理)。规则1:英文字母从A到Z排列,不区分大小写。如,输入:Type输出:epTy规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入:BabA输出:aABb规则3:非英文字母的其它字符保持原来的位置。如,输入:By?e输出...
原创
发布博客 2019.03.11 ·
573 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android P Binder-ServiceManager 分析

Service Manager 启动和初始化ServiceManager作为binder的大管家,也是binder的守护进程,它本身也是binder的一个server端。它本身逻辑比较简单,只是实现对binder 服务的注册和查询。但是它的逻辑主要是跟binder驱动进行交互,我们可以通过分析ServiceManger的相关逻辑作为我们认识和学习binder的一个入口,以对binder驱...
原创
发布博客 2019.02.27 ·
451 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Android ClassLoader 机制分析

1.Java ClassLoader机制Android 的ClassLoader机制与Java 的ClassLoader机制略有不同,主要差异在Java加载的是class文件,而Android 加载的是dex文件,但是在ClassLoader的设计体系和思想上还是相近的,毕竟Android 的虚拟机也是从JVM改变演进的,所以我们先来跟踪分析java 的ClassLoader机制,对于我们理解...
原创
发布博客 2019.02.27 ·
629 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

起三个线程依次读取一个数组的数据,同时只有一个线程执行?

public class ReadString {    private String[] read = {"1","2","3","4","5","6","7","8","9","10"};    public synchronized void read(int id ,int index){    
原创
发布博客 2018.09.30 ·
2798 阅读 ·
0 点赞 ·
2 评论 ·
4 收藏
加载更多