自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java设计模式学习---Builder模式(创建型模式)

Builder模式是一步一步创建一个复杂对象的创建型模式。 Builder模式可以控制对象创建的流程,使得构建部件和过程可以自由拓展。使用场景: 1、例如一个对象的构造参数比较复杂,其中一些参数是可选状态,这种情况可以考虑使用Builder模式。避免过多的使用setter方法。 2、在构建对象过程中,不同的构建执行顺序产生不同的作用。 Android中常见的builde...

2019-06-22 15:27:48 167

原创 Android7.0系统应用包名信息

    Chrome    com.android.chrome/com.google.android.apps.chrome.Main        通讯录    com.android.contacts/com.android.contacts.activities.PeopleActivity        时钟    com.android.deskclock/com.android....

2018-07-31 09:57:36 3521

原创 Android JNI基础简介--源码中编译JNI

1、在对应app工程目录下新建jni目录 mkdir jniLINUX/android/packages/apps/Dialer$ lsAndroidManifest.xml Android.mk assets java jni LICENSE2、CallTimeNvWriter.java文件中加载soku文件,并声明了native方法public cl...

2018-07-23 18:20:53 1875 1

原创 Android.mk编译的时候报错

1、Android.mk:11: error: missing separator.报错原因是在下面的代码中反斜干后面有空格LOCAL_C_INCLUDES += \ vendor/qcom/proprietary/fastmmi/libmmi \ external/libcxx/include \ external/skia/include/core \ ...

2018-07-17 10:30:59 3133

原创 Java volatile关键字

volatile特性  内存可见性:通俗来说就是,线程A对一个volatile变量的修改,对于其它线程来说是可见的,即线程每次获取volatile变量的值都是最新的。    对于volatile修饰的变量,读操作时JMM会把工作内存中对应的值设为无效,要求线程从主内存中读取数据;写操作时JMM会把工作内存中对应的数据刷新到主内存中,这种情况下,其它线程就可以读取变量的最新值。注意:    若对变量...

2018-07-05 21:57:17 207

原创 Java设计模式学习---单例模式(创建型模式)

Java中单例模式是一种常见的设计模式,单例模式这里主要介绍两种种:懒汉式单例、饿汉式单例。单例对象的类必须保证只有一个实例存在。 整个系统中拥有一个全局的对象,有利于协调整体的行为,如在一个应用中,应该只有一个ImageLoader实例,图片处理框架中一般包含缓存系统,线程池以及网络请求系统等,这些系统都是比较耗资源的。所以设计为单例形式,可以减少一定资源的浪费。使用场景:...

2018-07-05 17:15:05 212

转载 Http协议相关

1、什么是HTTP协议    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传输协议。HTTP协议采用了请求/响应模型。通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。主要特点简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用...

2018-06-13 14:26:59 194

原创 Android动态权限管理

    Android 6.0引入了动态权限管理,将标记为危险的权限从安装时权限(Install Time Permission)模型移动到运行时权限模型(Runtime Permissions):安装时权限模型(Android5.1以及更早):用户在应用安装和更新时,对危险权限授权。但是OEM和运行商预装的应用将自动预授权。运行时权限(Android6.0及以后):用户在应用运行时,对应用授予危...

2018-06-13 09:57:02 1159

原创 AndroidStudio配置Terminal

    AndroidStduio中的Terminal默认是cmd.exe。由于习惯使用了Ubantu系统中的命令,很不习惯使用cmd终端。下面轻松配置AndroidStudio的Terminal。    准备工作,由于使用git管理代码,我这边从百度上下载了Git,可自行下载。 配置File--->Settings-->Terminal修改shell path:       点击te...

2018-06-12 16:53:22 1293

原创 Android显式intent和隐式intent

    要启动一个Activity有两种方法,一种是通过显式Intent启动,而另一种是通过隐式Intent启动。一、显示Intent显示Intent是明确目标Activity的类名。1、通过Intent(Context packageContext, Class<?> cls)构造方法该方法是最常用的,只适用于当前应用,只能启动本应用中的Activity。Int...

2018-06-11 14:43:34 3071

原创 Java设计模式学习---抽象工厂模式(创建型模式)

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 抽象工厂模式相对于工厂模式的区别是,工厂类也通过工厂模式来创建。通过一个超级工厂来创建其他工厂,其他工厂再创建其他类对象。 优点:当一个产品族中的多个...

2018-06-08 14:15:02 177

原创 Java设计模式学习---工厂模式(创建型模式)

工厂模式属于创建型模式,工厂模式定义一个用于创建对象的接口,让子类决定创建哪一个类。通俗的讲就是提供一个工具类型的类来创建不同的对象(这些对象一般属于同一个基类的子类)。使用场景: 1、需要生成复杂对象的地方。优点:1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3...

2018-06-08 10:50:51 203

原创 Android adb命令

一、获取片屏幕相关信息1、高通平台adb shell vm density        获取屏幕密度adb shell vm size             获取屏幕分辨率 2、通用方法adb shell dumpsys window displays |head -n 3    获取屏幕分辨率,屏幕密度等信息如下显示分辨率480*854   屏幕密度240dpi...

2018-06-08 10:50:40 223

原创 Android图片选择---GalleryFinal简单使用

Android图片单选/多选、拍照、裁剪、压缩。视频选择和录制。public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); ThemeConfig theme = new ThemeConfig.Build...

2018-06-07 15:00:41 1182

原创 Android图片选择---MultiImageSelector的使用

Github地址:https://github.com/lovetuzitong/MultiImageSelectorMultiImageSelector主要是图片选择功能。AndroidStudio配置如下:1、在build.gradle(Project:)中2、在build.gradle(app)的dependencies添加依赖库    compile 'com.github.lovetuz...

2018-06-07 14:59:17 1169

原创 Android LogUtil

package mvp.com.neteaseapp.util;import android.util.Log;public class LogUtil { private static boolean DEBUG = true; public static void v(String tag, String msg) { if (DEBUG) { ...

2018-06-07 14:55:06 163

原创 Android动画应用---自定义属性动画

在上篇博客中对Android动画的基本使用方法做了简介,下面学习下Android自定义属性动画。自定义Android属性动画中涉及两个关键类TypeEvaluator和TimeInterpolator ,这两个都是接口类型,下面分别介绍这个两个类型:    一、TypeEvaluator 估值器    1、作用    告诉动画系统,如何从属性初始值过渡到属性结束值。Android系统中提供的估值器...

2018-06-05 09:44:41 1040 1

原创 Android JNI基础简介

简介:        JNI的全称就是Java Native Interface,Java本地接口    作用:使得Java 与 本地其他类型语言(如C、C++)交互    注意:JNI开发前提是要引入jni.h头文件,这个文件Android NDK目录下面    示例如下:        #include<jni.h>    通过javac和javah编译出一个your_jni.h文...

2018-06-01 15:18:13 380

原创 Java设计模式学习---观察者模式(行为型模式)

观察者模式又被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式属于行为型模式。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。优点:1、观察者和被观...

2018-05-31 11:50:47 127

原创 Android动画的应用---三种动画简析

    Android中提供了三种动画,分别是帧动画(Frame Animation),补间动画(Tweened Animation)和属性动画(Property Animation)。下面分别介绍下这三种动画的使用。一、帧动画(Frame Animation)    帧动画是最容易实现的一种动画,这种动画更多的依赖于完善的UI资源,他的原理就是将一张张单独的图片连贯的进行播放,从而在视觉上产生一...

2018-05-30 17:36:16 809

原创 Activity去掉标题栏

    现在用AndroidStudio2.2创建Activity时,Activity默认是继承自AppCompatActivity,用下面这种方式并不能达到隐藏标题栏的效果:requestWindowFeature(Window.FEATURE_NO_TITLE);或在style中定义:<item name="android:windowNoTitle">true</ite...

2018-05-29 17:19:12 3457

原创 Android多线程处理方式

Android提供了四种常用的操作多线程的方式,分别是:    1. Handler+Thread    2. AsyncTask    3. ThreadPoolExecutor    4. IntentService下面分布对四种方式进行介绍。一、Handler+Thread...

2018-05-28 22:18:55 1115

原创 Android 四大组件之间的通信

    Android四大组件:Activity,Service,Broadcast,ContentProvider。下面主要介绍Activity之间的通信,Activity和Fragment之间的通信,Activity和Service之间的通信,以及ContentProvider使用。组件之间利用广播,EventBus等第三方框架进行通信这里不做介绍。一、Activity之间的通信1、通...

2018-05-27 15:23:59 6986

原创 WindowManagerService添加窗口流程简析---应用窗口的创建

    Android系统中的窗体是屏幕上的一块用于绘制各种UI元素并能够响应应用户输入的一个矩形区域。从原理上来讲,窗体的概念是独自占有一个Surface实例的显示区域。比如Dialog、Activity的界面、壁纸、状态栏以及Toast等都是窗体。  一、Android窗口类型  在WindowManager类的内部类LayoutParams中定义了三种窗口类型(Application win...

2018-05-22 17:22:34 1353

原创 Android屏幕适配

一、目的    屏幕适配的目的是让某个view元素在不同尺寸和分辨率的android设备上显示相同的效果。二、基本概念1、屏幕尺寸    屏幕对角线的长度,单位是英寸(inch),1 inch = 2.54cm。    常见的Android手机尺寸有5寸,5.5寸,6寸等。2、屏幕分辨率    分辨率即是屏幕横向和纵向的像素点总和,单位是px(pixel),1px 表示是一个像素点。    目前常...

2018-05-21 16:26:37 777

翻译 EventBus3.0的使用简析

EventBus是Android的一个开源项目,它最重要的功能就是可以简化各个组件之间的消息传递。1、定义一个MessageEvent,这个类就是一个普通的Object,没有任何特殊,我们用它作为消息传递的载体。[java] view plain copypublic class MessageEvent {      public final String message;        pub...

2018-05-15 15:19:53 139

原创 Https原理分析

HTTP协议传输的数据都是未加密的,也就是明文的,不安全。网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。HTTPS和HTTP的区别主要如下:  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费...

2018-05-12 17:02:08 203

原创 WindowManagerService启动流程简析

    WindowManagerService 就是位于 Framework 层的窗口管理服务,它的职责就是管理系统中的所有窗口。    Android中的窗口概念:屏幕上一块用于绘制各种UI元素并可以响应用户输入的一块矩形区域。从原理上来看,窗口的概念是独自占有一个Surface实例的显示区域。如Dialog、Activity的界面、壁纸、状态栏以及Toast等都是窗口。    WindowM...

2018-04-05 23:10:22 1273

原创 Handler机制简析

Handler是处理线程与线程之前通信的一套机制。Handler是常被开发者拿来更新UI的一种消息处理机制,它的运行机制需要底层的Looper和MessageQueue的支撑。一、创建Handler在子线程中通过newHandler()创建的Handler是会导致程序崩溃的,提示的错误信息为Can't create handler inside thread that ...

2018-03-31 15:11:53 260

原创 ActivityManagerService启动流程简析

    ActivityManagerService(AMS)是Android中核心的服务,主要负责系统中四大组件的启动、切换以及应用进程的管理和调度等工作。下面主要是查看ActivityManagerService的启动流程,AMS由SystemServer.java启动,zygote进程会调用SyetemServer.java中的run方法开启相关服务。一、SystemServer.javaf...

2018-01-16 16:50:17 287

空空如也

空空如也

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

TA关注的人

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