自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Steffen Dinn 的博客

Home is not where you live but where they understand you.

  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android 常用注解一览

注解的使用有助于减少样板代码的编写,并提供了一种声明性的方法来描述代码的意图和行为。可以用于实现依赖注入,数据库映射、运行时权限处理等功能。1. 值约束类型注解@Nullable // 变量、参数或返回值可能为 null@NonNull // 变量、参数或返回值不能为 null@IntRange // 指定整型或长整型取值范围, eg: void setAlpha(@IntR...

2023-12-25 22:21:00 892

原创 23种设计模式——结构型设计模式(7种)

目录☞23 种设计模式——创建型设计模式(5种)☞23 种设计模式——结构型设计模式(7种)☞23 种设计模式——行为型设计模式(11种)3. 结构型设计模式结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合或聚合组合对象。由于组合关系或聚合关系比较继承关系耦合度低,满足“...

2020-05-01 13:37:00 976

原创 23种设计模式——创建型设计模式(5种)

1. 总述☞23 种设计模式——创建型设计模式(5种)☞ 23 种设计模式——结构型设计模式(7种)☞23 种设计模式——行为型设计模式(11种)软件设计模式使人们可以更加简单方便复用成功的设计和体系结构,它通常包含以下几个基本要素:模式名称、别名、动机、问题、解决方案、效果、模式角色、合作关系、实现方法、实用性、已知应用、例程、模式扩展和相关模式等。设计模式...

2019-09-07 20:29:00 618

原创 面向对象设计原则

在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员经理根据7条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。1. 开闭原则(Open Closed Principle, OCP)软件实体应该对扩展开放,对修改关闭。这里的软件实体包括以下几个部分:1) 项目中划分出的模块2) 类与接口3) 方法...

2019-08-22 14:14:00 287

原创 Android Studio常用配置

目录1. 主题颜色设置2. Logcat颜色设置3. 类注释4. 编译器添加背景图4.1 第一种方式 Background Image4.2 第二种方式 Sexy Editor5. 修改文件编码为UTF-86. 增加代码悬浮提示1. 主题颜色设置2. Logcat颜色设置3. 类注释4. 编...

2019-08-20 20:37:00 162

原创 [转]探索 Android 内存优化方法

前言这篇文章的内容是我回顾和再学习 Android 内存优化的过程中整理出来的,整理的目的是让我自己对 Android 内存优化相关知识的认识更全面一些,分享的目的是希望大家也能从这些知识中得到一些启发。Android 应用运行在 ART 环境上,ART 是基于 JVM 优化而来的,ART 优化的目标就是为了让 Android 应用能更高效地在 Andro...

2019-08-19 20:25:00 157

原创 Java内存管理机制

对于从事 C/C++ 程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的帝皇,又是从事最基础工作的劳动人民——既拥有每一个对象的“所有权”,又担负着每一个对象生命从开始到终结的维护责任。对于 Java 程序员来说,在虚拟机的自动内存管理机制的帮助下,不在需要为每一个 new 操作去写配对的 delete/free 代码,而且不容易出现内存泄漏和内存溢出问题,看起...

2019-08-17 23:36:00 159

原创 JNI与NDK简析(一)

1 JNI 简介在Android Framework中,需要提供一种媒介或 桥梁,将Java层(上层)与C/C++层(下层)有机的联系起来,使得他们互相协调完成某些任务。而充当这种媒介的就是Java本地接口(JNI,Java Native Interface)。JNI提供一些列的接口,允许Java类与C/C++等本地编辑语言(在JNI中,这些语言被称为 本地语言)编写的...

2019-08-04 22:15:00 194

原创 Java多线程并发系列之闭锁(Latch)和栅栏(CyclicBarrier)

JAVA并发包中有三个类用于同步一批线程的行为,分别是闭锁(Latch),信号灯(Semaphore)和栅栏(CyclicBarrier)。本贴主要说明闭锁(Latch)和栅栏(CyclicBarrier)。1. 闭锁(Latch)闭锁(Latch) —— 确保多个线程在完成各自事务后,才会打开继续执行后面的内容,否则一直等待。计数器闭锁(CountDownLa...

2019-07-27 09:46:00 261

原创 Handler 机制(一)—— Handler的实现流程

由于Android采用的是单线程模式,开发者无法在子线程中更新 UI,所以系统给我提供了 Handler 这个类来实现 UI 更新问题。本贴主要说明 Handler 的工作流程。1. Handler 的作用在Android为了保障线程安全,规定只能由主线程来更新UI信息。而在实际开发中,会经常遇到多个子线程都去操作UI信息的情况,那么就会导致UI线程不安全。这时,我们...

2019-07-26 00:08:00 248

原创 Android自绘制控件

开发过程中,我们免不了需要用到一些自定义的 View,自定义 View 一般可分为三类:  ① 继承类 View —— 一般继承系统以后的基本 View,新增/重置一些自定义属性 ,例如两端对齐的TextView;  ②组合类 View —— 将系统某几个基本View组合在一起形成一个新的View,例如末尾带 ”ד(清空) 的EditText,就是将EditText...

2019-07-25 00:17:00 93

原创 Android混淆配置及总结

Android打正式的release包混淆是必备的,避免APP被反编译,使项目中隐秘的技术或信息被别人查看。Android studio则写在proguard-rules.pro中,当然写在proguard-android.txt中也可以。gradle配置buildTypes { release { buil...

2018-11-02 15:37:00 115

原创 AndroidStudio提高编译速度的建议

1、使用最新的Android gradle插件Google tools team一直致力于提高android studio的编译速度,使用最新的gradle插件可以搞编译速度 在Android Gradle Plugin 3.0后,google推出了新的依赖方式,并强制要求废弃老的依赖方式,将原有的compile闭包方法,拆分成implementation,api以明确项目的依赖关系...

2018-10-28 16:00:00 209

原创 常用校验工具方法汇总

1. 保留小数点后两位/** * 返回含有精确到百分位的小数 * @param str * @return */public static String getDecimalFormat2(String str) { DecimalFormat decimalFormat = new DecimalFormat("0.00"); Strin...

2018-09-22 00:28:00 185

原创 Android 5.0系统默认颜色

伴随着 Android5.0 的发布也更新了support-v7-appcompat 到 V21,其中增加了 ToolBar、recyclerview、cardview 等控件。Android5.0 对改变 APP 样式下了不小的功夫,写法也和以前不一样了,下面先简单介绍一下colorAccent,colorPrimary,colorPrimaryDark …… 的作用:...

2018-07-04 10:16:00 125

原创 build.gradle 浅析(一)

简述:  1) Java 开发中有两个大名鼎鼎的项目构建 ANT、Maven。  2) Google 推荐使用的 Android studio 是采用 Gradle 来构建项目。Gradle 是一个非常先进的项目构建工具。  Gradle 是用了一种基于 Groovy 的领域特定语言(DSL,Demain Specific Language)来声明项目设置,摒弃了 XML(如...

2018-06-22 17:27:00 107

转载 B2B、B2C、C2C、O2O等区分

一、B2B、B2C、C2C、O2O区分在哪?B2B(Business to Business)企业与企业之间的电子商务,如1688、海豚供应链;B2C(Business to Consumer)企业与消费者之间的电子商务,如京东、当当、网易考拉等;C2C(Consumer to Consumer)个人对个人的,如淘宝的小店铺、咸鱼等;O2O(Online to Offline )线上与线下相结合的...

2018-04-09 18:12:06 2243

原创 String、String[]、ArrayList<String>之间的转换

1. ArrayList<String> 转换为 String[]:  ArrayList<String> list = new ArrayList<>();  list.add("aaa");  list.add("bbb");  String[] arrString = list.toArray(new String[list.s...

2017-11-21 10:35:00 115

原创 Java反射机制概念及使用

反射机制 —— 将类中的所有成员反射成对于的类。以“com.test.Person”类为例 转换对应的类 获取方法 说明类ClassClass mClass = Person.class;通过类名直接获取...

2017-11-13 16:39:00 89

原创 Android性能优化:ViewStub

用法一: 在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候...

2017-07-16 18:08:00 76

原创 多线程并行请求问题及SplashActivity预加载问题解决方案

1. 问题描述(一):现有3个线程thread1, thread2, thread3。这3个线程是并发执行的,当着3个线程都执行完成以后,需要执行一个finish()事件。1.1 实现方法: 1 /** 定义一个静态标记 **/ 2 private static byte nbTemp = 0; 3 4 private void aa(){...

2017-03-29 11:13:00 138

原创 Android xUtils3.0使用手册(二) - 数据库操作

步骤:(1). 创建数据表;(2). DaoConfig 获取数据库的配置信息;(3). 获取数据库实例: x.getDb(daoConfig);(4). 数据库的增删改查。1. 创建数据表 在这里要强调的是,数据库里面表的创建的时间,只有在你对数据库里面的操作涉及到这张表的操作时,会先判断当前的表是否存在,如果不存在,才会创建一张表,如果存...

2017-03-22 12:21:00 108

原创 Android xUtils3.0使用手册(一)- 基础功能使用

xUtils3 其功能不得不说,简化了很多的开发步骤,可以说是非常好的开发工具,但是苦于没有完整的使用手册,下面是使用中的一些总结,不断完善。xUtils 版本3.3.36jar包下载地址http://files.cnblogs.com/files/steffen/xUtils-3.3.36.zipGitHub项目地址htt...

2017-03-21 17:20:00 129

原创 Android RecyclerView体验(一)- 简介

在网上关于RecyclerView的基本使用方式已经有了比较详细介绍,而且其设计结构也类似于ListView,所以本文将不重点介绍如何使用,在文末的引用中都可以相关内容。这里主要是介绍RecyclerView的基本功能、设计理念,以及系统提供API的情况。什么是RecycleViewRecyclerView是在Android L(也就是后来的Lollipop)中新加入的一种...

2017-01-11 17:08:00 64

原创 Android 权限管理

从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限,而不提供设备位置的访问权限。用户可以随时进入应用的 “Settings” 屏幕调用权限。系统权限分为两类:正...

2017-01-10 12:22:00 74

原创 Android tools:context=".MainActivity"的作用

1 <TextView 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" 4 android:layout_centerHorizontal="true" 5 android:layout...

2016-11-23 14:27:00 99

原创 Android ListView多布局讲解

Listview优化是一个老生常谈的事情了,其优化的方面也有很多种,例如,布局重用、在getView()中减少逻辑计算、减少在页面滑动的时候加在图片,而是在页面停止滚动的时候再加在图片。而今天要介绍的是另一种方式,那就是多布局。一般使用的场景有一下两种情况:① 当一个item有多重布局的情况下,使用部分隐藏来实现既笨拙又效率低下,这时多布局会是个不错的选择;② 当一个ite...

2016-11-15 00:38:00 127

原创 护眼颜色设置

大家都是长时间使用电脑的人,给大家个小建议,设置电脑的背景色为如下,可以有效护眼:1. 常用护眼色:RGB模式SHL模式十六进制模式红色(R):181色调 (U):85 #B5E6B5绿色(G):230饱和度(S):123-蓝色(B):181亮度 (L):205-...

2016-10-22 14:45:00 384

原创 Android 关于在Activity中监听ListView

Android 开发时,最常用的控件之一就是ListView了,而使用ListView的同时,必然需要对它设置监听器,常用的监听器有这么几个:  1. OnItemClickListener// 监听器在点击该子项时触发;   2. OnTouchListener// 监听器在触碰到ListView时触发;   3. OnScrollListener // 监听器在L...

2016-10-22 10:00:00 118 1

原创 Android开发华为手机无法看log日志解决方法

Android开发华为手机无法看log日志解决方法上班的时候,由于开发工具由Eclipse改成Android Studio后,原本的华为手机突然无法查看崩溃日志了,大家都知道,若是无法查看日志要它毛用啊?刚开始没想过是手机问题,毕竟在Eclipse中是完好了,结果在Android Studio中花了大量时间查找原因,最后,偶然换个手机发现别的手机正常。。。最后百度发现解...

2016-09-23 17:40:00 173

原创 Android替换APP字体 — Typeface

Android替换APP字体 — Typeface  APP字体的思路一般都会想到自定义控件(TextView、EditView),但是项目中会有很多种控件,就算用也会承担一些风险和资源的消耗,主要是这种思路太死板了,就考虑Android底层应该在字体设置上有放开的方法,然后可以通过Application对控件进行过滤与替换,通过一番搜索果然有所发现,下面贴出代码:  1、...

2016-09-08 18:24:00 150

原创 Java synchronized 详解

Java synchronized 详解Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。  1、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。  2、然而,当一个线...

2016-09-08 14:33:00 72

原创 Android RecyclerView完全解析

RecyclerView完全解析(一) 前言话说RecyclerView已经面市很久,也在很多应用中得到广泛的使用,在整个开发者圈子里面也拥有很不错的口碑,那说明RecyclerView拥有比ListView,GridView之类控件有很多的优点,例如:数据绑定,Item View创建,View的回收以及重用等机制。那么今天看一下RecyclerView控件,本系列文章会包括到以...

2016-01-29 10:45:00 83

原创 Android插件简介

/***@actorSteffen.D*@time2015.02.06* @bloghttp://www.cnblogs.com/steffen*/Android插件简介  Android下,默认的情况是,每个apk相互独立的,基本上每个应用都是一个dalvik虚拟机,都有一个uid,再配合上linux本身的权限机制,使得apk互通很难直接进行。...

2015-02-06 10:43:00 56

原创 Java 在本地文件中查找固定字符串

适用范围:只适用于在文本文档中查找(如,txt、java、c等等,并不适用与doc、xls等等这些文件),可嵌套文件夹。但是对中文不支持。例如:文件夹:F:/demo子文件夹:F:/demo/ert查找结果:最后附上全部代码: 1 package com.stafen.main; 2 3 import java.io.File; 4 i...

2014-10-14 20:26:00 104

原创 Android 关于ListView中按钮监听的优化问题(方法二)

关于ListView中按钮监听的优化问题(方法一)地址:http://www.cnblogs.com/steffen/p/3951901.html之前的方法一,虽然能够解决position的传递,但是我们一般在监听事件中会经常用到Context和存储数据的集合ArrayList,若每次都要将这么多的数据传递给Button的话,那个Button的数据量必然会增大。因此,参...

2014-09-03 08:35:00 75

原创 Android 关于ListView中按钮监听的优化问题(方法一)

在Android应用开发过程中经常会用到ListView,并且每次在item中都要对点击事件进行监听。在给按钮添加OnClickListener时,一般会下意识的在getView()中找到每一个Button并new一个OnClickListener分配给这个Button,并将position赋给这个Button的监听事件。但是当数据量很大时new出这么多的监听器势必会对内存添加压力。然而...

2014-09-02 17:17:00 79

原创 Android屏幕适配问题详解

上篇-Android本地化资源目录详解:http://www.cnblogs.com/steffen/p/3833048.html单位:  px(像素):屏幕上的点。  in(英寸):长度单位。  mm(毫米):长度单位。  pt(磅):1/72英寸。  dp/dip(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp=...

2014-07-09 10:47:00 82

原创 Android本地化资源目录详解

  我们可以设想,有两个不同分辨率的手机(320*480和480*800)要使用一些图像资源,为了使图像不失真,就需要为不同分辨率的手机指定不同的图像,为此就需要建立不同的资源目录。  在res目录中建立了3个图像资源目录:drawable、drawable-hdpi和drawable-mdpi。其中drawable为默认图像的图像资源目录,drawable-hdpi保存了在高屏幕密...

2014-07-09 10:22:00 169

原创 Android 布局详解

Android 布局详解1.重用布局当一个布局文件被多处使用时,最好<include>标签来重用布局。例如:workspace_screen.xml的布局文件,在另一个布局文件中被重复使用三次,那么可使用如下的布局代码:<LinearLayout  androd:layout_width=”fill_parent”  androd:layout_...

2014-07-04 16:14:00 136

空空如也

空空如也

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

TA关注的人

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