自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(250)
  • 资源 (1)
  • 收藏
  • 关注

原创 【数据结构与算法可视化网站】

网上有很多这类数据结构与算法可视化的网站,能够自己输入数据,然后看对应的数据结构/算法的动图,能够很好地帮助我们理解数据结构与算法。所以,今天我就把自己在学数据结构与算法时,用到可视化网站分享出来。Structure Visualization我之前那篇文章就是在 Data Structure Visualization 网站做的动图,这个网站支持很多种数据结构的动图演示。地址如下:https://www.cs.usfca.edu/~galles/visualization/因为网站是国

2022-02-04 16:12:20 1352

翻译 CDN原理简析

CDN原理简析CDN(Content Delivery Network,内容分发网络)将源站的内容发布到接近用户的网络“边缘”,用户可以就近获取所需数据,不仅降低了网络的拥塞状况、提高请求的响应速度,也能够减少源站的负载压力。很多同学都比较熟悉CDN的作用和功能,但是可能也会像我之前一样,对CDN的原理不是十分了解。所以本文旨在对CDN的工作原理和核心组件进行简要的描述。1. 访问源站的过程为了更加清楚地展示CDN的原理,我们首先回顾一下不使用缓存直接到源站请求数据的过程:..

2021-06-16 11:31:50 313

原创 adb shell下使用命令行删除android系统中指定文件和文件夹

记录一下命令:C:\Users\Administrator\Downloads\cmder λ adb root C:\Users\Administrator\Downloads\cmder ...

2019-08-13 10:39:26 15847

转载 Add Flutter to existing apps

Dan Field edited this pageon 20 Jun·70 revisionsIntroMaking it easy to add Flutter to an existing app is work in progress, tracked by theAdd-to-App project.This page documents the current st...

2019-07-26 20:07:01 1140

转载 Flutter笔记(二)

一、Android 集成 Flutter 实现流程闲鱼、头条 在 Android 集成 Flutter 模块都有自己的实现方案:闲鱼团队方案&头条团队方案我们以官方方案方式为主。一、Android 集成 Flutter 实现流程闲鱼、头条 在 Android 集成 Flutter 模块都有自己的实现方案:闲鱼团队方案&头条团队方案我们以官方方案方式为主。...

2019-06-14 11:41:12 760

原创 Flutter开发笔记(一)

最近在做项目,想集成Flutter来开发部分组件。所以,开始了研究Flutter混合开发之路。欢迎加入 Dart 阵营。跳过所有有关安装和运行 Flutter 应用程序的部分,直接进行操作,如果您不确定 Flutter 是什么,并且有许多问题,请阅读关于 Flutter 的演进之路。Dart如果你认为 Kotlin 是 Java 的替代,等到你看到 Dart 后,你会发现它...

2019-06-14 11:37:12 630

转载 Android:远程服务Service(含AIDL & IPC讲解)

1. 远程服务与本地服务的区别远程服务与本地服务最大的区别是:远程Service与调用者不在同一个进程里(即远程Service是运行在另外一个进程);而本地服务则是与调用者运行在同一个进程里 二者区别的详细区别如下图:按运行地点分类2. 使用场景多个应用程序共享同一个后台服务(远程服务)即一个远程Service与多个应用程序的组件(四大组件)进行跨进程通信...

2019-05-02 14:36:41 773

转载 Binder实用指南(二) - 实战篇

本章的内容主要说明如何在JavaFramework层和Native层自定义Client-Server组件,并且使用Binder进行通信。一、Native Binder源码目录结构:alps/frameworks/native/cmds/NativeBinderDemo/ 1 2 3 4 5 6 ...

2019-04-06 17:22:09 506

转载 Binder实用指南(一) - 理解篇

这是关于Android Binder机制的一篇文章,Binder是Android里面非常重要的组成,也是最难理解的一块知识点,学习Binder最好的方法是深入源码阅读,因为Binder相关的知识错综复杂,一般初学者也很容易迷失在源码的汪洋里,本文旨在梳理Binder的架构和流程,并且试着以实用的角度来看待Binder。一、为什么需要Binder机制?Android系统中,每个应用程序是...

2019-04-06 17:17:32 704

转载 Android JNI回调的三种方法

第一种方法在当前函数(同一个线程)里面回调,直接用findClass或者GetObjectClass,进行回调(国内各大博客介绍的普遍方法):java 层代码:/** * Created by jiong103 on 2017/3/23. */public class Sdk { private Sdk() { } //单例 private ...

2018-12-25 21:41:02 1540

转载 AOP编程思想

   AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的...

2018-12-07 20:35:33 763

转载 Android 开源项目及库汇总

UIAwesome-MaterialDesign – MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局,新增了不少库。 awesome-android-ui – ui库,非常多的ui及特效。 ChipsLibrary – 在Android EditText中实现打Tag功能。 bitmapMesh – 拉窗帘效果。 Observab...

2018-11-26 21:44:55 6140 3

转载 Android调试工具

1. 查看当前堆栈1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系2) 方法: new Exception(“print trace”).printStackTrace();2. MethodTracing1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等2) 方法:a) 在程序代码中加入追踪开关...

2018-11-26 21:32:18 1985

原创 内存耗用分析:VSS/RSS/PSS/USS

VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一般来说内存占用大小有如下规律...

2018-11-26 21:24:23 14639

原创 Android内存优化

        避免因不正确使用内存 & 缺乏管理,从而出现 内存泄露(ML)、内存溢出(OOM)、内存空间占用过大 等问题,最终导致应用程序崩溃(Crash)示意图下面,将针对回收 进程、对象 、变量的内存分配 & 回收进行详细讲解2、 针对进程的内存策略a. 内存分配策略由 ActivityManagerService 集中管理 所有进程的内存分配b. ...

2018-11-21 10:20:53 296

转载 线程和线程池

在Android中,几乎完全采用了Java中的线程机制。线程是最小的调度单位,在很多情况下为了使APP更加流程地运行,我们不可能将很多事情都放在主线程上执行,这样会造成严重卡顿(ANR),那么这些事情应该交给子线程去做,但对于一个系统而言,创建、销毁、调度线程的过程是需要开销的,所以我们并不能无限量地开启线程,那么对线程的了解就变得尤为重要了。Thread/Runnable/Callable...

2018-11-16 10:06:25 258

转载 Android P 适配

Goolge自 android L (6.0) 以来就持续对安装系统进行 安全 以及 性能上的升级,此次的 android P (9.0)也不例外, 更大程度上对之前一些版本一些警告的具体落实,无论你的 Target Api 是否是 28 都将受到影响。1. 影响所有应用 (无论TargetApi 是否 28+)1.1 non-sdk 接口限制此限制不仅仅局限于sdk层 ( 直接引用 ...

2018-11-07 11:28:05 7668

原创 Android各个版本的Feature变更

Android 8.0 相关变更        后台执行限制改动默认只只针对Android8.0及以上,不过用户可以设置将该改动作用于任何应用。 处于后台的应用不在允许创建后台服务了,如果创建会抛出一个IllegalStateException异常。        应用进入后台应用时会有一个时间窗,在该时间窗之内应用的后台服务还是在运行且可以创建后台服务,该事件窗口结束之后系统会将后台服务结束...

2018-11-06 10:44:13 3211

转载 Android Canvas绘图

    以图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,这里我们都是使用Canvas来实现的。你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View. invalidate方法让View重新刷新,然后绘制一个新的形状,这样达到2D动画效果。下面我们就主要来了解下Canvas的使用方法。Canvas对象的获取方式有两种:一种我们通过重...

2018-10-31 17:52:36 4107 2

转载 android app耗电分析方法

      这是一篇讲述应用耗电的文章,围绕 Android 电量采集机制及第二代 Battery Historian 分析工具讲述。文从数据采集、导出、环境搭建、解读报告的角度出发,从细节讲解整个流程。和大谈概念的文章不同,这里将进行实际操作及分析。写作动机来源于最近的工作需求,但分析过程中发现网上资料较为匮乏。在此执笔写作,以便日后回顾,亦作为分享的机会。0x01 电量统计模块概述...

2018-10-10 16:23:41 11675 1

转载 Android 7.0 startActivity()源码解析

本文并不是非常详细地解释startActivity()源码每行代码的具体作用(实际上也根本做不到),所以我省略了很多代码,只保留了最核心的代码。我研究这段源码的目的是解决以下几个我在开发应用的过程中所思考的问题:是通过何种方式生成一个新的Activity类的,是通过java反射生成的吗? Activity的生命周期回调方法是通过哪个类调用的,在什么时候调用的? 界面的绘制是在执行Activ...

2018-10-09 14:30:12 814

转载 Android App新手指引开源控件——开源整理

一个App第一次与用户接触或者发生大版本更新时,常常会用户进行新手引导,而一个好的新手指引,往往能够方便新用户快速了解操作你的应用功能。新手指引的重要性,不言而喻。本文搜集整理了Github上一些效果不错的新手指引开源控件,帮助你的应用在用户面前有更好的效果展示。当然,如果你有精力,也可以自己开发维护一套新手指引效果。GuideViewhttps://github.com/binIote...

2018-09-18 10:20:33 1149 1

原创 Android源码学习

作为一名程序员,肯定不仅仅限于使用API文档,因为浮于表面是远远不够的。进阶学习的阶段,需要我们保持一颗好奇的心,深入阅读Android源码,学习优秀的代码风格和设计思想,知其然并且知其所以然。引用Google的一张框架图:Applications层,和用户直接交互的就是这些应用程序,它们都是用Java开发的。 Java Framework层,这一层大部分用Java语言编写。它是An...

2018-09-08 16:54:53 4424 1

转载 Handler.postDelayed()是如何精确延迟指定时间的

使用Handler.postDelayed()时的疑问使用handler发送消息时有两种方式,post(Runnable r)和post(Runnable r, long delayMillis)都是将指定Runnable(包装成PostMessage)加入到MessageQueue中,然后Looper不断从MessageQueue中读取Message进行处理。然而我在使用的时候就一直有一...

2018-08-23 16:20:44 10773 5

转载 BootLoader、Linux Kernel(linux内核)、RootFile(根文件系统)

这3部分是怎么相互协作来构成这个系统的呢?各自有什么用呢?三者有什么联系?怎么联系?系统的执行流程又是怎么样的呢?搞清楚这个问题你对整个系统的运行就很清楚了,对于下一步制作这个linux系统就打下了另一个重要的根基。下面是笔者针对网上bootloader、linuxkernel(linux内核)、rootfile(根文件系统),三者关系的一个总结 1.LINUX中b...

2018-08-04 11:31:28 5503

转载 ActiveMQ

ActiveMQActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。外文名ActiveMQ支持语言Java,C,C++,C#,Python,Ruby,Perl应用...

2018-07-29 19:06:33 327

转载 FFmpeg的使用和开发

最近因为要音频处理的研究,音频开发,但是有一个难题就是怎么解析与提取音频的数据,于是就找到了FFmpeg。基本上只要做视频音频开发都离不开ffmpeg1.什么是ffmpeg引用wiki百科的解析.FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能1,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频...

2018-07-12 15:04:07 2870

转载 安卓屏幕图层绘制

Android系统中的所有UI类都是建立在View和ViewGroup这两个类的基础上的。所有View的子类成为”Widget”,所有ViewGroup的子类成为”Layout”。View和ViewGroup之间采用了组合设计模式,可以使得“部分-整体”同等对待。ViewGroup作为布局容器类的最上层,布局容器里面又可以有View和ViewGroup。当我们运行程序的时候,有一个setConte...

2018-06-23 17:29:49 2577

转载 Android虚拟机的理解和内存管理

虚拟机很小,空间很小,谈谈移动设备的虚拟机的大小限制 16M ,谈谈加载图片的时候怎么处理大图片的,outmemoryExceptionBitmapFactory.option 垃圾回收,没有引用的对象,在某个时刻会被系统gc掉 .Dalvik和标准Java虚拟机(JVM)首要差别Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于编译后变大的程序来说,在它们执行的时候,花费的时间...

2018-06-18 17:45:12 3001 1

转载 理解Android虚拟机结构

1 什么是Dalvik虚拟机  Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Google对其进行了特定的优化,使得Dalvik具有高效、简洁、节省资源的特点。从Andr...

2018-06-18 10:51:52 2136

转载 Android Native 崩溃日志收集

android和iOS平台的崩溃捕获和收集通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常,以便开发人员发现和修改bug,对于提高软件质量有着极大的帮助。本文介绍了iOS和android平台下崩溃捕获和收集的原理及步骤,不过如果是个人开发应用或者没有特殊限制的话,就不用往下看了,直接把友盟sdk(一个统计分析sdk)加入到工程中就万事大吉了,其中的错误日志功能完全能够满足需求,而且不需要额外...

2018-05-26 22:55:50 2021

转载 Activity的底层生命周期的回调

转载原文地址:http://blog.csdn.net/yalinfendou/article/details/46909173【yalinfendou的博客】需要了解的几点概念和知识点:Instrumentation是执行application instrumentation代码的基类,这个类在任何application code之前实例化,让你可以监听所有的system与application...

2018-05-24 18:27:22 717

转载 HTTP1.0、HTTP 1.1、HTTP 2.0之间的主要区别

HTTP1.0与HTTP 1.1的主要区别 长连接节约带宽HOST域HTTP1.1与HTTP 2.0的主要区别 多路复用二进制分帧首部压缩服务器推送一、HTTP1.0与HTTP 1.1的主要区别长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,...

2018-05-17 20:11:32 7482 4

转载 常用加密解密算法【RSA、AES、DES、MD5】介绍和使用

       为了防止我们的数据泄露,我们往往会对数据进行加密,特别是敏感数据,我们要求的安全性更高。下面将介绍几种常用的加密算法使用。这些算法的加密对象都是基于二进制数据,如果要加密字符串就使用统一编码(如:utf8)进行编码后加密。1.摘要算法常用的摘要算法有MD5,SHA1。摘要算法是一个不可逆过程,就是无论多大数据,经过算法运算后都是生成固定长度的数据,一般结果使用16进制进行显示。 MD...

2018-05-15 09:51:57 1609

转载 详解synchronized与Lock的区别与使用

昨天在学习别人分享的面试经验时,看到Lock的使用。想起自己在上次面试也遇到了synchronized与Lock的区别与使用。于是,我整理了两者的区别和使用情况,同时,对synchronized的使用过程一些常见问题的总结,最后是参照源码和说明文档,对Lock的使用写了几个简单的Demo。请大家批评指正。技术点:1、线程与进程:在开始之前先把进程与线程进行区分一下,一个程序最少需要一个进程,而一个...

2018-05-11 17:35:40 17039 6

转载 JNI 深入讲解

Android上层的Application和ApplicationFramework都是使用Java编写,底层包括系统和使用众多的LIiraries都是C/C++编写的。所以上层Java要调用底层的C/C++函数库必须通过Java的JNI来实现。实际上我们不鼓励使用JNI,除非必须使用。因为一旦使用JNI,JAVA程序就丧失了JAVA平台的两个优点:1、程序不再跨平台。要想跨平台,必须在不同的系统...

2018-05-01 22:24:13 1090

转载 Java Native Interface

https://blog.csdn.net/htq__/article/details/51012704Java Native Interface (JNI)标准是Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作...

2018-05-01 21:08:04 316

转载 Android 通过JNI实现守护进程

转载请注明出处:http://blog.csdn.net/yyh352091626/article/details/50542554开发一个需要常住后台的App其实是一件非常头疼的事情,不仅要应对国内各大厂商的ROM,还需要应对各类的安全管家...  虽然不断的研究各式各样的方法,但是效果并不好,比如任务管理器把App干掉,服务就起不来了...网上搜寻一番后,主要的方法有以下几种方法,但其实也都治...

2018-04-18 10:02:52 375

转载 Android 进程保活招式大全

目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要清除旧进程来回收内存。...

2018-04-17 19:37:47 1349

原创 Android6.0动态权限整理和分组

      6.0权限的基本知识,以下是需要单独申请的权限,共分为9组,每组只要有一个权限申请成功了,就默认整组权限都可以使用了。    group:android.permission-group.CONTACTS    permission:android.permission.WRITE_CONTACTS    permission:android.permission.GET_ACCOUN...

2018-04-17 10:58:52 941 1

B树 C语言实现

B树,C语言实现,添加到vc6.0中,可以执行的程序。

2011-12-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除