自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

转载 Android应用程序安装与Launcher启动机制

Android应用程序安装与Launcher启动机制以下资料摘录整理自老罗的Android之旅博客,是对老罗的博客关于Android底层原理的一个抽象的知识概括总结(如有错误欢迎指出)(侵删):http://blog.csdn.net/luoshengyang/article/details/8923485http://blog.csdn.net/luoshengyang/article/d...

2019-12-19 15:14:37 453

原创 Handler简单介绍

Handler简单介绍目 录1 Handler的基本介绍…1.1什么是Handler…1.2为什么要用Handler…1.3Handler的四个组成部分…1.3.1 Message…1.3.2 Handler…1.3.3 MessageQueue…1.3.4 Looper…1.4 Handler工作流程…1.5 Handler的用法…1.5.1 传递Message…1....

2019-11-09 15:33:13 772

原创 Android设备FTP服务器搭建

Android设备FTP服务器搭建目 录1 前言…1.1设计背景…1.2搭建方案简述…2 搭建服务器流程…2.1创建新项目…2.2添加相应jar包…2.3添加相应依赖…2.4获取设备IP…2.5开启FTP服务器…2.6关闭FTP服务器…3 注意事项…1 前言1.1 设计背景因压力测试抓Log文件过大,可能造成设备的内存空间溢出,所以需要搭建Android设备的FTP...

2019-11-09 15:29:38 2466 1

原创 android的m、mm、mmm编译命令的使用

android的m、mm、mmm编译命令的使用android源码目录下的build/envsetup.sh文件,描述编译的命令m: Makes from the top of the tree.mm: Builds all of the modules in the current directory.mmm: Builds all of the modul...

2019-10-31 21:03:44 313

原创 高通方案的Android设备几种开机模式的进入与退出

高通方案的Android设备几种开机模式的进入与退出高通方案的Android设备主要有以下几种开机模式,Android、EDL、Fastboot、Recovery和FFBM,其进入及退出的方式如下表。用户碰到的通常是前面三种,大家也都比较熟悉,这里不再赘述。FFBM主要是工厂生产测试使用。在该模式下,Android手机一般可以通过触屏在FFBM界面的Reboot菜单中选择重启进入Androi...

2019-10-31 17:33:23 2936 1

原创 Android-ContentProvider详解

1 内容提供器简介Content Provider 主要用于在不同应用程序间实现数据共享。不同于文件存储和SharedPreferences存储中的两种全局可读写操作模式,Content Provider可以选择值对那一部分数据进行共享...

2019-10-24 10:54:46 510

原创 Android-持久化技术详解

1 持久化技术简介数据持久化指将呢些内存中瞬时数据保存到存储设备中,保证及时在设备关机的情况下,数据不会丢失。Android系统提供三种方式用于简单的实现数据持久化功能,即文件存储、SharePreference存储和数据库存储。当然还有第四种,数据保存子啊手机的sd卡中。2 文件存储文件存储是Android最基本的一种数据存储方式,它不对存储内容做任何格式化处理,所有的数据都是原封不动地...

2019-10-22 21:44:06 414

转载 Protect Broadcast 保护广播

一、android:sharedUserId=“android.uid.system”系统中所有使用android.uid.system作为共享UID的APK,都会首先在manifest节点中增加 android:sharedUserId=“android.uid.system”,然后在Android.mk中增加 LOCAL_CERTIFICATE := platform.如ZsDeskcloc...

2019-10-22 15:45:53 1094

原创 Android - 第三章 UI开发

Android - 第三章 UI开发1.常用控件使用方法1.1. TextViewmatch_parent: 让当前的控件的大小和父布局大小一样;wrap_content: 让当前控件的大小刚好能够包含住里面的内容;android:id 控件唯一标识符android:layout_width 控件宽度android:layout_height 控件高度android:text 显示...

2019-10-17 10:43:34 256

原创 Android-广播Broadcast Receiver详解

1.广播机制简介Android中的广播主要分为两种类型:标准广播和有序广播。标准广播(Normal broadcasts)是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在统一时刻接受到这条广播消息,因此它们之间灭有任何先后顺序可言。这种广播的效率会比较高,但同时也意味着它是无法别jieduan...

2019-10-17 10:38:15 289

原创 Android - Handler

1. 概述Handler:是一个消息分发对象,进行发送和处理消息,并且其Runnable对象与线程的MessageQueue 关联。作用:调度消息,将一个任务切换到某个指定的线程中去执行。子线程不允许访问UI假如子线程允许访问UI,则在多线程并发的情况下,会使UI控件处于不可预期的状态。传统solution:加锁,但会使得UI访问逻辑复杂,同时降低UI访问效率。引入Handler采用...

2019-09-24 15:02:15 487

原创 Android - Android 控件总结

Android - Android 控件总结1. TextViewandroid.widget.TextView extends android.view.View属性描述android:id唯一的标识控件IDandroid:autoLink设置是否将指定格式的文本转换为可单击的超链接显示,可选参数值:none;web:URL连接;email:邮箱;phone:...

2019-09-23 21:50:46 387

原创 Android常用的UI组件

1 TextView 及其子类1.1 TextView 和 EditView1.2 Button:点击触发一个onClick事件RadioButton:单选按钮,通常与RadioGroup一起使用;ToggleButton:状态开关按钮;CheckBox:复选按钮;Switch:开关。1.3 AnalogClock 和 TextClockTextClock:取代早起的Digi...

2019-09-23 14:39:56 1517

原创 Android - View 和 ViewGroup

Android - View 和 ViewGroupAndroid 系统中的所有 UI 类都是建立在 View 和 ViewGroup 两个类的基础之上的,所有 View 的子类称为 Widget,所有 ViewGroup 的子类称为 Layout。Activity 是 Android 应用程序与用户交互的接口,每一个屏幕视图都对应一个 Activity。Activity 本身无法显示在屏幕...

2019-09-23 11:39:25 305 1

原创 Android - 第二章 Activity 探究

Android - 第二章 Activity 探究1. Activity 是什么2. Activity 的基本用法3. 使用intent在Activity中调度4. Activity的生命周期Activity的状态:1.运行状态(running)Activity位于返回栈的栈顶。2.暂停状态(paused)Activity不再处于栈顶,但仍然可见。这是因为不是每个Activit...

2019-09-19 13:56:12 609

原创 Android - 第一章 基本认识

Android - 第一章 基本认识1. 分析目录1.1 自动生成无需关心.gradle .idea bulid build.gradle1.2 需要了解的.gitignore 该文件用来将指定的目录或者文件排除子啊版本控制之外。gradle.properties 该文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。gradlew 和 g...

2019-09-18 14:02:26 229

原创 shell 使用总结

shell 使用总结注意事项1.默认目录凡是自定义的脚本建议放在/usr/local/sbin/目录下、容易归档而且接管的管理员容易知道自定义脚本放哪。2.后缀shell脚本通常以.sh作为后缀。3.首行test.sh中第一行一定是 “#! /bin/bash” 它代表的意思是,该文件使用的是bash语法。#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种...

2019-09-16 14:27:23 426

转载 Java 中的几种线程池

为什么要使用线程池虽然大家应该都已经很清楚了,但还是说一下。其实归根结底最主要的一个原因就是为了提高性能。线程池和数据库连接池是同样的道理,数据库连接池是为了减少连接建立和释放带来的性能开销。而线程池则是为了减少线程建立和销毁带来的性能消耗。以 web 项目为例,有以下两种情况:1、每次过来一个请求,都要在服务端创建一个新线程来处理请求,请求处理完成销毁线程;2、每次过来一个请求,服务端...

2019-09-01 16:33:21 175

转载 Java并发—java.util.concurrent.locks包

Java并发—java.util.concurrent.locks包一.synchronized的缺陷synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:...

2019-08-28 16:19:26 311

转载 java 泛型详解

java 泛型详解1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用...

2019-08-28 11:42:47 303

转载 linux中fork()函数详解

linux中fork()函数详解一、fork入门知识一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数...

2019-08-27 17:19:02 233

转载 多线程编程总结

多线程编程总结一、线程模型:线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体。根据运行环境和调度者的身份,线程可分为内核线程和用户线程。内核线程:运行在内核空间,由内核来调度;用户线程:运行在用户空间,由线程库来调用。当进程的一个内核线程获得CPU的使用权时,它就加载并运行一个用户线程。可见,内核程序相当于用户线程运行的容器。一个进程可以拥有M个内核线程和N个用户线程,其中...

2019-08-27 16:36:39 153

转载 Map的有序和无序实现类,与Map的排序

Map的有序和无序实现类,与Map的排序1.HashMap、Hashtable不是有序的;2.TreeMap和LinkedHashMap是有序的(TreeMap默认 Key 升序,LinkedHashMap则记录了插入顺序)。今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序。一...

2019-08-27 10:38:10 3586

转载 sleep()和wait()的区别及wait方法的一点注意事项

一.查看APIsleep是Thread类的方法,导致此线程暂停执行指定时间,给其他线程执行机会,但是依然保持着监控状态,过了指定时间会自动恢复,调用sleep方法不会释放锁对象。当调用sleep方法后,当前线程进入阻塞状态。目的是让出CPU给其他线程运行的机会。但是由于sleep方法不会释放锁对象,所以在一个同步代码块中调用这个方法后,线程虽然休眠了,但其他线程无法访问它的锁对象。这是因为sl...

2019-08-26 11:42:14 337

转载 阻塞与非阻塞的区别

简单点说:阻塞就是干不完不准回来,非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧…比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你Copy过来的数据的话…这时候...

2019-08-26 10:51:18 655

转载 java 线程池 使用实例

11 java 线程池 使用实例在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线...

2019-08-21 13:39:00 264

原创 JAVA并行编程-第八章 线程池的使用-学习总结

第八章 线程池的使用1.在任务与执行策略之间的隐性耦合有些类型的任务需要明确地指定执行策略,包括:依赖性任务。大多数行为正确的任务都是独立的:它们不依赖于其他任务的执行时序、执行结果或其他效果。当在线程池中执行独立的任务时,可以随意地改变线程池的大小和配置,这些修改只会对执行性能产生影响。如果提交给线程池的任务需要依赖其他任务,那么就隐含了给执行策略带来了约束,此时必须小心维持这些执行策略以...

2019-08-20 09:36:07 206

原创 Java并行编程-第六章 任务执行-学习总结

第六章 任务执行(Task Execution)在线程中执行任务最简单策略就是在单个线程中串行地执行任务。主线程在接受连接与处理相关请求等操作之间不断交替运行。当服务器正在处理请求是时,新到来的连接必须等待直到请求处理完成,然后服务器将再次调用accept。显示的为任务创建线程通过为每个请求创建一个新的线程来提供服务,从而实现更高的响应性。对于每个连接,主循环都将创建一个新的线程来处理...

2019-08-15 15:52:00 215

原创 java的集合框架最全详解(转)

java的集合框架最全详解(转)https://www.cnblogs.com/fuzhihong0917/p/5659783.html

2019-08-14 15:02:02 192

转载 代理模式(转)

什么是代理模式?代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,帮我办理车辆过户流...

2019-08-14 15:00:23 162

转载 JAVA中线程同步的方法(7种)汇总

JAVA中线程同步的方法(7种)汇总同步的方法:一、同步方法即有synchronized关键字修饰的方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类。二、同步代码块即有synchronized关键...

2019-08-14 13:51:00 578

转载 线程安全这么回答才牛逼(转)

不是线程的安全面试官问:“什么是线程安全”,如果你不能很好的回答,那就请往下看吧。论语中有句话叫“学而优则仕”,相信很多人都觉得是“学习好了可以做官”。然而,这样理解却是错的。切记望文生义。同理,“线程安全”也不是指线程的安全,而是指内存的安全。为什么如此说呢?这和操作系统有关。目前主流操作系统都是多任务的,即多个进程同时运行。为了保证安全,每个进程只能访问分配给自己的内存空间,而不能访问...

2019-08-14 13:41:04 178

原创 JAVA并行编程-第三章 对象的共享-学习总结

第三章 对象的共享要编写正确的并发程序,关键问题在于:在访问共享的可变状态时需要进行正确的管理。本章学习重点就是如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。关键字synchronized 不仅可以实现原子性或者确定临界区(Critical Section),还有内存可见性(Memory Visibility):当一个线程修改了对象状态后,其他线程可以看到发生的状态变化。可见性...

2019-08-13 16:43:00 252

原创 JAVA并行编程-第二章 线程安全性-学习总结

第二章 线程安全性如果当多个线程访问同一个可变的状态变量是没有使用合适的同步,那么程序就会出现错误。有三种方法可以修复这个问题:不在线程之间共享该状态变量。将状态变量修改成不可变的变量。在访问状态变量时使用同步。对象的状态是指存储在状态变量中的数据。对象的状态可能包括其他依赖对象的域。无状态:它既不包括任何域,也不包括任何对其他类中域的引用。无状态对象一定是线程安全的。由于不恰当的...

2019-08-12 16:29:18 219

原创 JAVA-IO系列-学习总结

IO流1.字符流1.1 Reader 1.2 Writer1.1.1 BufferedReader 字符缓冲输入流 1.2.1 BufferedWrite1.1.2 InputSreamReader - FileReader 1.2.2OutputStream Writer - FileWrite1.1.3 String...

2019-08-12 16:28:57 180

原创 JAVA并行编程-第一章 概述-学习总结

第一章 概述计算机操作系统使得计算机每次都能运行多个程序,并且不同程序都能在单独的进程中运行:操作系统为各个独立执行的进程分配各种资源,包括内存,文件句柄以及安全证书等。基于以下因素, 加入os:资源利用率。在等待一个程序的外部操作执行完成的过程中同时运行另一个程序,提高资源利用率。公平性。不同程序和用户能够共享计算机资源,而不是由一个程序从头运行到尾,再启动下一个程序。便利性。每个程序...

2019-08-12 11:42:24 297

转载 Java-类加载机制-学习总结

类加载机制原理 (类的加载过程及其最终产品):JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在堆(并不一定在堆中,HotSpot在方法区中)中生成一个代表这个类的java.lang.Class 对象,作为方法区类数据的访问入口。过程(类的生命周期):JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过...

2019-08-09 17:31:12 163

转载 JAVA-Composite Pattern-学习总结

组合模式(Composite Pattern)概述组合模式又叫部分整体模式,是把一组相似的对象当做一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方法。意图:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合...

2019-08-09 17:29:55 197

原创 JAVA-反射-学习总结

反射概述Java反射机制是在运行状态中,对任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。想要解剖一个类,必须先要获取这个类的字节码文件对象。而解剖使用的就是Class类中方法,所以先要获取每一个字节码文件对应的Class类型的对象。以上总结就是什么是反射。反射就是...

2019-08-09 16:04:51 205

转载 JAVA- Chain of Responsibility Pattern-学习总结

责任链模式(Chain of Responsibility Pattern)概述责任链模式为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,以此类推。意图:避免请求发送者与接收者耦合在一起,让多个...

2019-08-09 09:15:09 172

空空如也

空空如也

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

TA关注的人

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