需要为整个应用替换自定义字体。解决方案1)Android默认方法 #1你可以通过ID查找到View,然后挨个为它们设置字体。在单个View的情况下,它看起来也没有那么可怕。Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/YourCustomFont.ttf"); TextView view = (Te
转载 2024-07-03 19:51:48
12阅读
单一职责原则SRP:Single responsibility principle 【概述】单一职责原则又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。该原则由罗伯特·C·马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中给出的。马丁表示此原则是基于汤姆·狄马克(Tom DeMarco)和Meilir Pa
转载 2024-07-09 13:49:01
14阅读
# Java线程池资源释放指南 作为一名经验丰富的开发者,你经常需要使用Java线程池来管理并发任务。在使用线程池时,释放资源是一个非常重要的问题,因为如果不正确地释放资源,可能会导致内存泄漏或者其他一系列的问题。在本文中,我将向你解释Java线程池需要释放资源的原因,并提供一些示例代码来帮助你正确地释放线程池的资源。 ## Java线程池资源释放的流程 下面是释放Java线程池资源的一般流
原创 2024-02-04 07:31:55
78阅读
# Android GreenDAO 的内存管理与释放Android 开发中,数据库操作往往是我们程序中最为耗时和重要的一部分。为了解决 SQLite 操作的复杂性,很多开发者选择使用 ORM(对象关系映射)框架。GreenDAO 是一个轻量级的 Android ORM 框架,它提供了简单高效的方式来操作数据库。然而,在使用 GreenDAO 时,很多开发者都在思考一个问题:“Androi
浅层复制可以有效避免内存复制。ByteBuf的浅层复制有两种:切片浅层复制和整体浅层复制。切片浅层复制 sliceslice方法可以获取到一个ByteBuf的一个切片。一个ByteBuf可以进行多次的切片浅层复制,多次切片后的ByteBuf对象可以共享一个存储区域。slice方法有两个重载版本: public ByteBuf slice():返回的是ByteBuf中可读部分的切片 public B
浅解多线程(一)之线程入门起步本文链接确定多线程的结束时间,thread的IsAlive属性线程优先级,thread的ThreadPriority属性线程通信之Monitor类线程排队之Join多线程互斥锁Mutex信号量semaphore确定多线程的结束时间,thread的IsAlive属性在多个线程运行的背景下,了解线程什么时候结束,什么时候停止是很有必要的。案例:老和尚念经计时,2本经书,2
okhttp教程——起步篇这篇文章主要总结Android著名网络框架-okhttp的基础使用,后续可能会有关于他的高级使用。okhttp是什么okhttp是Android端的一个Http客户端,其基础功能相当于Android自带的HttpURLConnection和Apache HTTP Client,但他却比自带的2个Http客户端优越很多,一者是写法简单,二者okhttp处理很多网络复杂问题,
ThreadPoolExecutorThreadPoolExecutor 是线程池的真正实现,它的构造方法提供了一系列参数来配置线程池 这些参数直接影响到线程池的功能特性public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
转载 2024-02-16 12:40:44
33阅读
Android中每个应用的UI线程是被保护的,不能在UI线程中进行耗时的操作,其他的子线程也不能直接进行UI操作。为了达到这个目的Android设计了handler Looper这个系统框架。首先讲解在主线程中使用Handler时源码跟踪过程。正常在activity的oncreate函数中定义个handler,这种情况下就是默认的主线程的handler,并去复写该类的handleMessage(
转载 11月前
28阅读
今天在看一个开源项目的时候,发现了一个可以设置字体样式的类Typeface,配合着酷炫的字体,能让UI增色不少,于是便研究一下并做了记录。 Typeface类简介Typeface中的主要方法和变量都是静态的,类中定义了五种字体以及四种Style样式。五种字体 public static final Typeface DEFAULT; //默认的正常字体样式 public
转载 2024-02-04 22:48:42
199阅读
 获取java资源的方法      在开发java程序的过程中,我们经常要做的一件事就是获取资源。那么什么是资源呢?说白了,在计算机里那就是一堆数据。只是这堆数据对我们的java程序有多种表现形式,一般来说有File,URL,InputStream等等。而单就文件这一项就有很多种:配置文件,java类文件,jps文件,图片、css、js文
什么是内存泄漏?内存泄漏是当程序不再使用到的内存时,释放内存失败而产生了无用的内存消耗。内存泄漏并不是指物理上的内存消失,这里的内存泄漏是值由程序分配的内存但是由于程序逻辑错误而导致程序失去了对该内存的控制,使得内存浪费。怎样会导致内存泄漏?资源对象没关闭造成的内存泄漏,如查询数据库后没有关闭游标cursor构造Adapter时,没有使用 convertView 重用Bitmap对象不在使用时调用
所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。位图主要用于快速检索关键字状态,通常要求关键字是一个连续的序列(或者关键字是一个连续序列中的大部分), 最基本的情况,使用1bit标示一个关键字的状态(可标示两种状态),但根据需要也可以使用2bit(标示4种状态),3bit(标示8种状态)
前些年, HandlerSocket 的横空出世让人们眼前一亮,当时我还写了 一篇文章 介绍了其用法梗概,时至今日,由于种种原因,HandlerSocket并没有真正流行起来,不过庆幸的是MySQL官方受其启发,研发了基于InnoDB的Memcached插件,总算是在MySQL中延续了NoSQL的香火,以前单独架设Memcached服务器不仅浪费了内存,而且还必须自己维护数据的不一致问题,
# RedisReply需要释放?深入理解Redis C客户端 ## 一、引言 在使用Redis这一高性能的内存数据库时,我们经常需要与其进行交互。在C语言中,常用的客户端库主要有hiredis。hiredis库在处理Redis的消息时,会通过一个叫作`redisReply`的结构体来封装Redis的回复。本文将探讨`redisReply`的内存管理问题,特别是如何有效地释放`redisRe
原创 10月前
85阅读
# 理解 Spring 中的 `StringRedisTemplate` 资源管理 在学习 Spring 框架与 Redis 集成时,很多初学者会问:“`StringRedisTemplate` 需要释放?”今天,我们将一起探讨这个问题,并且了解如何在 Spring 中正确使用 `StringRedisTemplate`。 ### 1. 流程概述 首先,我们来看看使用 `StringRed
原创 8月前
15阅读
动态加载技术(也称为插件化技术),可以减轻应用的内存和CPU占用,还可以实现热插拔,即在不发布新版本的情况下更新某些模块。动态加载必须解决的三个基础性问题:资源访问、Activity生命周期的管理和ClassLoader的管理。1.资源访问宿主应用调用未安装的插件apk,一个很大的问题就是资源访问,具体来说就是插件中凡是以R开头的资源都不能访问了,这是因为宿主应用中没有插件的资源。Activity
转载 2023-07-06 23:09:34
83阅读
概述我们在Activity中访问资源(图片,字符串,颜色等)是非常方便的,只需要getResources()获取一个Resources对象,然后就可以访问各种资源了,那这些资源到底是怎么被加载的呢?下面我们就分析一下资源加载机制App启动流程首先我们回顾一下App启动流程,还不了解的可以看我之前写的这篇文章首先是点击App图标,此时是运行在Launcher进程,通过ActivityManagerS
转载 2023-07-12 08:49:01
70阅读
# Android VideoView释放资源 ## 概述 在Android开发中,使用VideoView来播放视频是一种常见的方式。然而,当我们不再需要使用VideoView时,需要释放相关资源,以免造成内存泄漏。 本文将指导刚入行的开发者如何实现“android videoview释放资源”。首先,我们将介绍整个流程,并使用表格展示每个步骤。然后,我们将详细讲解每个步骤需要做什么,提供相
原创 2023-12-11 09:13:33
432阅读
介绍Grand Central Dispatch简称GCD,是Apple开发的一个多核编程的解决方法。GCD包括了语言特性、运行时库和系统改进,这项改进为并发代码在iOS和OS X的多核硬件上提供了系统全面的支持。GCD帮助系统和你的应用运行更快,更有效率,并且提高了响应速度。GCD是在系统级上操作的,可以更好地适应所有运行中的程序的需求,以平衡的方式使它们匹配可利用系统资源。GCD API支持执
  • 1
  • 2
  • 3
  • 4
  • 5