- 博客(44)
- 资源 (4)
- 收藏
- 关注
原创 adnroid 11. 0 Activity启动流程图解
从Launcher到ActivityTaskManager从ActivityTaskManagerService 到 ApplicationThread从ApplicationThread到onCreate
2023-07-25 16:08:20
1245
原创 android 下载源码 一路踩坑
从官网下载 pyhon3.0 安装器,然后更改配置。我使用了VPN,设置一下代理就好了,踩坑踩了一整天,终于可以下载了。其他代理协议配置方式。
2023-07-16 18:16:57
620
原创 Mac 上 jni 编译
ystem.loadLibrary 和 System.load 是Java中用于加载本地库(Native Library)的方法。-shared 是一个编译选项,用于将 C/C++ 源代码编译成动态链接库(。这个选项告诉编译器生成一个共享库,而不是一个可执行文件。-o 是一个链接选项,用于指定输出文件的名称。它告诉链接器将多个目标文件合并成一个文件,并将其命名为指定的名称。-classpath class路径 -d 输入目录。-I 是指定jin.h的路径。注意需要在项目根目录执行。
2023-07-08 10:12:54
822
原创 操作系统-死锁笔记
操作系统都具有授权一个进程(临时)排他地访问一种资源的能力。在很多应用中,需要一个进程排他性地访问若干种资源而不是一种。两个进程都被阻塞,并且一直处于这样的状态。这种状况就是死锁(deadlock)1.资源我们把这类需要排他性使用的对象称为资源。简单来说,资源就是随着时间的推移,必须能获得、使用以及释放的任何东西。1....
2022-03-03 11:14:11
538
原创 进程与线程学习笔记
进程与线程学习笔记进程间通信竞争条件进程间通信竞争条件两个或多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序。称为竞争条件。
2022-02-23 15:03:39
704
1
原创 操作系统-IO笔记
1 I/O 硬件原理1.1 I/O 设备IO设备大致可以分为:块设备和字符设备。1.2 设备控制器I/O设备一般有机械部件和电子部件两部分组成。电子部件称作设备控制器,经常以主板上的芯片的兴衰出现。1.2内存映射I/OCPU如何与设备的控制寄存器和数据缓存区进行通信?方法一: 为每个控制寄存器分配一个I/O端口(I/O port)方法二: 将所有的控制寄存器映射到内存空间中。I/O 映射优点:减少控制I/O的开销不需要特殊的保护机制来阻止用户进程进行I/O 操作。可以引用内存的
2022-02-17 17:56:39
333
原创 操作系统-内存管理笔记
分层存储体系(memory hierarchy):高速缓存(cache)、内存、磁盘。操作系统的工作是将这个存储体系抽象为一个有用的模型并管理这个抽象模型。1.无存储器抽象最简单的存储抽象就是根本没有抽象。存储器的模型是简单的物理内存。在这种情况下,程序被读入到内存中,产生的数据在内存中是如何工作的???在不使用存储器抽象的情况下运行多个程序:使用静态重定位技术避免绝对物理地址的碰撞。2. 一种抽象存储地址空间物理地址暴露带来的问题:用户程序容易破坏操作系统同时运行多个程序是困难的
2022-02-11 10:00:35
378
原创 现代操作系统 - 文件系统笔记
文件文件命名文件结构无结构的字节序列、具有固定长度记录的序列、记录树结构文件类型普通文件、目录、字符特殊文件、块特殊文件。普通文件一般分为ASCII文件和二进制文件。文件访问顺序访问和随机访问。文件属性文件操作目录一级目录系统层次目录系统路径绝对路径、相对路径目录操作文件系统的实现文件系统布局文件的实现连续分配、链表分配、采用内存中的表进行链表分配(文件分配表(File Allocation Table,FAT))、i节点目录的实现目录项列表文件名的处理
2022-02-08 09:22:41
437
原创 android内存优化学习路线
Android开发高手课 03内存优化(上)Android内存管理机制JAVA堆外内存的简介和使用bitmap内存Android | 带你理解 NativeAllocationRegistry 的原理与设计思想Java的finalizer,cleaner等如何实现?android上的ART虚拟机Android上的Dalvik虚拟机...
2020-12-30 20:51:27
134
原创 Android输入事件之InputReader 处理事件
原始输入事件处理流程图InputDeviceInputDevice相对于EventHub的Device多了一个InputMapper列表。void InputReader::addDeviceLocked(nsecs_t when, int32_t deviceId){ //1 从EventHub 中获取厂商信息与设备类别 //2 通过createDeviceLocked()函数创建InputDeveice InputDevice* device = createDeviceLocked(
2020-12-29 19:10:06
379
原创 Android输入事件EventHup总结
getEvent 与 sendeventadb shell getevent -t[1262.557130] /dev/input/event0: 0001 0074 000000001262.557130/dev/input/event0:0001007400000000时间戳设备节点事件类型事件代码事件值输入系统整体流程IMS的构成在SystemServer中的ServerThread线程中被创建和启动。创建在InputManagerService
2020-12-24 14:28:38
209
原创 c++通过递归和栈实现二叉树 中序、先序、后序遍历
#include <utility>#include <iostream>#include <stack>using namespace std;struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};//添加节点void addNode(BinaryTreeNode **rootNode, int valu
2020-12-19 17:59:25
261
1
原创 java内存、垃圾回收相关知识
内存分配GC回收机制可达性分析GC Root 对象在 Java 中,有以下几种对象可以作为 GC Root:Java 虚拟机栈(局部变量表)中的引用的对象。方法区中静态引用指向的对象。仍处于存活状态中的线程对象。Native 方法中 JNI 引用的对象。垃圾回收算法标记清除算法复制算法标记压缩算法堆内存新生代采用复制算法,老年代采用标记压缩算法,维护一个512byte的card table,记录老年代对新生代对象的引用。引用...
2020-12-16 10:52:03
84
原创 CombinedChart 实现单个柱形图+折线图
实现默认选中实现选中不可取消实现渐变色等等不慢慢看api还真不好搞啊package com.xxmassdeveloper.mpchartexample;import androidx.appcompat.app.AppCompatActivity;import androidx.core.content.ContextCompat;import android.graphics.Color;import android.os.Bundle;import android.util..
2020-12-02 15:40:23
1047
原创 设计模式概念总结
持续更新中…创建型模式、结构型模式、行为模式关于这三种模式这篇博客解释的还算清楚,我这里不就黏贴复制了创建、结构、行为详解 创建型模式创建型模式就是创建对象的模式,封装了实例化的过程。简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)创建者模式(Builder)原型模式(Prototype)单例模式(Singleton) 结构型模式解决怎样组装现有的类,设计它们的交互方式,从而达到实现一定功能的
2020-11-28 17:23:21
107
原创 Android 崩溃优化笔记
Android 平台 Native 代码的崩溃捕获机制及实现(原文链接)信号机制1.程序崩溃Unix-like系统中,崩溃都是编程错误或者硬件错误相关2.信号机制信号的接收 :内核接收信号,放入进程信号队列,发送中断,陷入内核态信号的检测 :检测信号,有信号,处理信号处理 : 内核栈的内容备份到用户栈,修改指令寄存器,指向信号处理函数,返回用户态,执行信号处理函数,完成,返回内核态,检查信号队列,无,内核栈恢复(拷贝回用户栈的备份),指令寄存器指向中断前运行位置,返回用户态继续执行进程
2020-11-18 18:06:12
225
原创 注解学习之依赖注入框架ButterKnife
ButterKnife使用方式在Module:app build.gradle 中添加如下代码dependencies {implementation 'com.jakewharton:butterknife:10.1.0'//作用:在编译时处理注解,生成辅助文件,提升应用性能annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'}ButterKnife GitHub链接 在GitHub中可以查看完成的源码,在项目中
2020-11-16 11:35:36
242
原创 注解学习之注解基础
jkd1.8中文API (可以在API中查看相关类的说明,介绍很详细)参考《Android进阶之光》第九章注解与依赖注入框架学习时不明白的地方,尽量要去查清楚,比如在学习编译时注解器时:AbstractProcessor不知道它是做什么的,就可以去查一下jdk1.8中文API有比较详细的解释;这样学下来,可能刚开始学的慢,但是学的比较深入,理解到位注解概述注解常用类型:@Target:注解修饰的对象范围ElementType.TYPE: 修饰类,接口或枚举类型ElementType.FIEL
2020-11-13 19:02:47
282
原创 线程和线程池文章集合
java多线程系列:http://www.cnblogs.com/-new/p/7156811.html详细的线程池入门介绍 :http://www.cnblogs.com/aspirant/p/6920418.htmlSynchronousQueue简介: http://www.cnblogs.com/duanxz/p/3252267.htmljava中锁的分类:http://www...
2018-12-28 19:30:38
140
原创 overflow: hidden scroll 在移动端失效问题
.drag_view_div{ width: 100%; height: 100%; background: orangered; overflow-y: scroll; overflow: hidden scroll; position: relative;}添加 overflow-y: scroll 之后就一切正常了 ...
2018-09-13 10:57:27
11409
原创 view系列之一 、view的位置
view的位置参数view的位置主要由它的四个顶点来决定的,分别对应view的四个属性:top、left、right、bottom,在layout(int left,int top,int right,bottom)时,设置这四个属性的值1、view提供一些方法获取自身属性的值ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginL
2017-05-29 19:21:56
620
原创 ExoPlayer的简单demo
下载地址 这里写链接内容横屏效果package qingyunbomei.com.xingtest.videos;import android.content.pm.ActivityInfo;import android.graphics.Color;import android.media.session.PlaybackState;import android.net.Uri;impo
2017-03-27 19:51:38
6343
原创 Android 图片水平平铺效果
直接上代码,终于好了 /** * Created by QYBM_Android_two on 2017/3/23. * 水平平铺 */public class Linear_bitmap{ public static Bitmap createRepeater(Context context, @DrawableRes int drawable, int width) {
2017-03-23 16:17:06
948
原创 android 状态栏总结
WindwManager.LayoutParamsWindowManager.LayoutParams是WindowManager接口的嵌套类;它继承于ViewGroup.LayoutParams; 它用于向WindowManager描述Window的管理策略。主要成员常量Window flag系列该系列主要用于对Window的flag进行设置。设置Window的flag,可以直接对Window的g
2017-03-22 15:42:02
395
原创 EditText 相关知识点
Android:inputType=”none”–输入普通字符 android:inputType=”text”–输入普通字符 android:inputType=”textCapCharacters”–输入普通字符 android:inputType=”textCapWords”–单词首字母大小 android:inputType=”textCapSentences”–仅第一个字母大小
2017-03-08 13:27:36
302
原创 ContentProvider 笔记
ContentProvider介绍contentProvider即内容,数据的提供者,用来做不同应用之间的数据共享,也对数据存储和逻辑之间有很好的解耦作用 介绍一下ContentProvider的方法public boolean onCreat();该方法在ContentProvider创建后会被调用,当其他应用程序第一次访问或 本应用打开时ContentProvider会被创建,且这两个条件互
2016-12-09 12:30:13
217
转载 LayoutInflater的inflate()函数解释
setContentView()一旦调用, layout就会立刻显示UI;而inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来。一般在activity中通过setContentView()将界面显示出来,但是如果在非activity中如何对控件布局设置操作了,这就需要LayoutInflater动态加载。1.关于public
2016-10-04 13:54:16
238
转载 自定义ViewGroup
思路1.定义需要的LayoutParams2.计算大小 计算viewGroup的父容器为其推荐的大小及计算模式计算所有childView的宽高计算childView的外边距及宽高计算viewGroup是wrap_Content模式时的大小设置viewGroup的大小3.设置childView的位置package com.moredo.ui;import android.content
2016-09-20 18:19:18
229
转载 eclipse 关联V4包源码
方法1:在工程的libs目录下创建一个配置文件:android-support-v4.jar.properties 查找已经安装的SDK的目录下的android-support-v4的src源码路径 比如我的路径为: C:\adt-bundle-windows-x86_64-20140702\sdk\extras\android\support\v4\src 编辑android-supp
2016-09-17 20:42:29
381
原创 自定义View详细使用
琐碎知识点Path.Direction有两个值:Path.Direction.CCW:是counter-ClockWise缩写,指创建逆时针方向的路径;Path.Direction.CW:是clockwise的缩写,指创建顺时针方向的路径
2016-09-01 21:45:49
245
转载 Android监听程序的安装和卸载
在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名。当卸载程序时系统发android.intent.action.PACKAGE_REMOVED广播。同样intent.getDataString()获得所卸载的包名应用程序无法监听自己的
2016-07-21 09:27:28
614
原创 ActionBarSherlock 和 SlidingMenu 在Eclipse中的引入和使用
ActionBarSherlock(一)在Eclipse中如何引入ActionBarSherlock和其Demo http://blog.csdn.net/yan8024/article/details/46984641SlidingMenu (一)在Eclipse中如何引入SlidingMenu和其Demo http://blog.csdn.net/yan8024/article/de
2016-06-30 17:00:42
299
原创 Android WebView 开发详解
android WebView 开发详解二http://blog.csdn.net/typename/article/details/39495409 webview 缓存 http://www.cnblogs.com/dennysong/p/5581530.htmlWebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即appcache)。 http://w
2016-06-29 15:34:38
376
原创 android Uid 与 Pid 的区别与用法
Pid是进程ID,Uid是用户ID,只是Android和计算机不一样,计算机每个用户都具有一个Uid,哪个用户start的程序,这个程序的Uid就是那个用户,而Android中每个程序都有一个Uid,默认情况下,Android会给每个程序分配一个普通级别互不相同的 Uid,如果用互相调用,只能是Uid相同才行,这就使得共享数据具有了一定安全性,每个软件之间是不能随意获得数据的。而同一个applica
2016-05-28 22:11:16
1504
原创 android 图片倒影效果
import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Linear
2016-05-22 22:50:04
295
转载 PorterDuffXfermode实现Android刮刮卡效果
package com.moredo.drawbitamp;import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.
2016-05-22 20:10:05
321
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人