自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李斯维的博客空间

都是自己的一些东西,不好不好,还需努力。。。

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

原创 Java 和 C 中 测量代码耗时 最佳实践

测量代码耗时是在开发过程中不可避免会遇到的问题。本文讲解了在 Java 和 C 语言中常用的几种测试代码耗时的方法,简单易用,值得收藏。

2022-08-16 22:27:35 372 1

原创 Android 源代码在线查看 目录结构 不完全指南

分享几个可以在线查看Android 源代码的网站:Android 源代码官方查看网站:https://cs.android.com/;AOSPXRef 在线查看源代码:http://aospxref.com/;AndroidXRef 在线查找源代码:http://androidxref.com/;

2022-01-19 16:14:43 6873

原创 快速上手 TinyXML-2 不完全教程

TinyXML-2 不完全教程XML 作为程序开发中非常常用的数据文档之一,各个语言或是开发环境都有对应的用于处理 XML 文件的库。在 C++ 语言中,TinyXML-2 就是这样的一个库。TinyXML-2 是一个简单,小巧,高性能的 C++ 的 XML 解析器,它能够容易地集成到其他程序中。与 TinyXML-2 有关的两个网页如下:GitHub 主页:https://github.com/leethomason/tinyxml2在线帮助文档:http://leethomason.git

2022-01-08 16:16:42 3484 6

原创 记录 NDK JNI 的崩溃 Fatal signal 5 (SIGTRAP), code 1 in tid

在 Android 写 CPP 的代码时碰到了一个崩溃的问题,且崩溃日志只有下面的一行:Fatal signal 5 (SIGTRAP), code 1 in tid 32450后来在经过检查时才发现是由于有一个函数是定义了返回值的,但是实际上却没有返回任何东西导致的。即,JNI 函数或者使用到的 C++ 函数缺少指定的返回值。(也很纳闷为什么这种情况下编译都能过)参考了这个博文:https://blog.csdn.net/whartonyang/article/details/10692685

2022-01-05 21:03:11 2626

原创 使用 Xcode 配置 OpenGL 开发环境

前提准备在打开 Xcode 之前,我们需要准备两个库:GLFW 和 GLAD。这是开发 OpenGL 需要依赖的库,所以先看看如何准备好这两个库吧:GLFW在我们画出任何效果之前,首先要做的就是创建一个OpenGL上下文和一个用于显示的窗口。然而,这些操作在每个系统上都是不一样的,OpenGL有目的地将这些操作抽象出去。这意味着我们不得不自己处理创建窗口,定义OpenGL上下文以及处理用户输入。幸运的是,有一些库已经提供了我们所需的功能,其中一部分是特别针对OpenGL的。这些库节省了我们书写操作系

2021-01-13 20:44:36 1551 21

原创 Android 应用的版本兼容 了解一下(理解 minSdkVersion、targetSdkVersion、maxSdkVersion、compileSdkVersion)

前言总所周知,Android 适用于众多类型的设备,从手机到平板电脑和电视都能搭载使用。为了能在所有这些设备上顺利运行,Android 系统在应用到设备上时,必不可少的需要处理与 Android 应用的兼容性问题。这里就牵扯出两个概念:设备兼容性与应用兼容性。设备兼容性:设备兼容 Android 的前提是它可以正常运行针对 Android 执行环境编写的应用。应用兼容性:针对市面上千奇百怪的 Android 设备,应用是否兼容每一种可能的设备配置。对于Android 应用开发者来说 ,我们无需担

2021-01-09 17:04:25 11479 8

原创 对于 MVP 应用架构的理解及其优化改造

MVP 架构MVP架构由MVC发展而来。在MVP中,M代表Model,V代表View,P代表Presenter。Model 负责获取数据,数据的来源可以是网络或本地数据库等;View 负责界面数据的展示,与用户进行交互;Presenter 是Model与View之间的通信的桥梁,将Model与View分离开来,也是业务进行实现的地方;这三个层面之间的关系如下:我们先简单用一个简单...

2020-10-27 15:09:27 403

原创 解决方案: No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android

问题描述最近在打开一个 Android 工程时,在导入到 Android Studio 后很快就会出现如下问题:问题原因这个问题的最根本原因是因为本地的 NDK 版本过高,而之前的工程在编译时使用的是老版本的 Gradle 插件,这样在打开工程进行同步时,老版本的插件会检查 NDK 中的两个工具链:mips64el-linux-android-4.9mipsel-linux-andro...

2020-03-07 14:01:49 1444

原创 入门 JNI (Android NDK 教程 二)

第一讲用一些概念来理解来原生开发能做什么,有哪些功能。那么从现在开始,就开始真正进入编码阶段了,作为 Android NDK 开发,最先需要知道的,就是 JNI 了。它是一座桥梁,是 Java 代码与 C 代码之间的桥梁,是 Android 开发通往原生开发的必要路径。因此,这一讲的主要内容就对 JNI 有一个初步的认识。初识 JNIJNI 全称是 Java Native Interface(...

2019-03-11 10:59:55 328

原创 Android NDK 简介(Android NDK 教程 一)

Android NDK 简介Android 上的 C++ 简介NDK 是什么NDK 提供的组件Android NDK 的目录结构Android NDK 构建系统所提供的功能Android 上的 C++ 简介这是 Android NDK 开发的第一篇文章,内容当然都是一些简单的概念性的问题。但是像 SDK 安装,环境变量配置什么的,也都是大家应该懂的内容,这里就不在赘述了。后面将会对 Andro...

2019-03-07 21:03:13 819

原创 Android上最简单的IPC方案——Messenger

每个系统都会有相应的 IPC 机制以方便开发者来进行进程间通讯,Android 中有6中IPC机制。这6种方式各有各的优缺点和适用场景,在开发过程中最合适当前需求的才是最好的。至于它们各自适用场景此处就不详述了。今天主要来讲一讲这几种机制中最简单的一个 Messenger

2017-10-15 11:59:47 1301 1

原创 OkHttp接入HttpDNS,最佳实践

DNS(Domain Name System)即域名解析系统,这个东西说对于开发者来说,应该是没有不知道的。说简单点,这个系统的作用就是将域名解析成IP地址。我们的每一次网络请求,如果是使用域名,那么就是进行域名解析。一个优秀的域名服务应该能够满足两点要求,一个是能够正确的返回IP地址,二就是能够根据网络情况返回所请求的域名最近的服务器IP。

2017-10-14 19:15:20 3604 2

原创 Android解析JSON,你真的需要三方库?

一般情况下,如果服务器返回 JSON 数据,而且你又是做 Android 的,那么你首先想到的可能是GSON,或是fastJson这样的框架。这些框架能够很方便和快速的让我们将 JSON 转换成本地对象,是开发的首选。但是引用三方库也是有代价的,显而易见的就是包体积增大,库的升级等。这个时候,就需要想一想我们是不是必须要使用三方库了。

2017-09-18 23:38:31 712

原创 为什么我的 Android Studio 那么卡

最近换了 Mac Pro 写代码,然而没想到 Android Studio 会在苹果电脑上那么卡。主要表现为3点:正常在 java 文件中写注释时,如果输入中文会很卡;基本无法编辑 build.gradle , 一个输入就卡2分钟;打开 Android Studio 就会内存占用升高,电脑温度升高;本文将为上述3个问题提供一个解决方案。

2017-08-27 21:05:55 840

原创 由浅入深 带你了解 JAVA 注解

在学习注解之前,我首先来讲一讲学习注解的好处,不管下面看不看,先打个鸡血先。不过确定的是,在正常 JAVA 开发中,自己写注解是比较少的,更多的情况就是使用第三方库的注解,正因为如此,大多数开发者对于注解仅仅停留在会用的地步。试想一下,当大多数人都不会的时候你会,那么你是不是就超越的大部分人。

2017-06-06 00:02:59 352

原创 优雅的克隆——原型模式

原型模式是一个创建型模式。原型二字表明了该模式应该由一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程也就是俗称的克隆。被复制的实例就是原型,这个原型是可定制的。原型模式多用于创建复杂的或者构造好事的实例,因为这种情况下,复制一个已经存在的实例比重新创建一个更高效。综上总结一下,原型模式的定义就是:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

2017-06-05 23:59:47 353

原创 正则表达式的简单介绍

正则表达式是符合一定规则的表达式,专门用于操作字符串,用一些特定的符号来表示一些代码操作,这样简化书写。只需要书写简短的正则字符串就可以完成非常复杂的字符匹配操作。学习正则表达式最重要的就是学习如何写正则,而正则本身又是各种符号的组合体。所以学习正则表达式,就是在学习一些特殊符号的使用。

2017-04-17 23:21:15 443

原创 写多了自定义View,可以来试一试自定义Drawable

在 Android 开发中,会大量使用到自定义View,于是在很多开发者心里形成了自定义View优先的原则,需要一个新的效果,没问题,写个自定义View。但是写个自定义View还是一个比较麻烦的事,比如说需要复写onMeasure,onDraw,要考虑padding,考虑wrap_content等等。但是很多效果都没必要自定义View,写个Drawable就可以了。

2017-04-17 22:46:58 619

原创 Float中的那些常量 Infinity、NaN

在 Java 计算中,肯定会使用各种基本数据类型,进行加减乘除等操作。但是假如哪一天,你发现一个函数给你返回了一个float结果,你打印出来后却发现不是小数,而是Infinity或NaN这种东西,你可能就一脸黑人问号了。 这两个值确实是 Java 提供的数值,一个返回float的函数给你返回这两个值也是没有任何问题的。那这两个值各代表什么意义呢,下面给出答案

2017-03-28 17:03:12 3723

原创 Android ImageView 的scaleType 属性图解

ImageView 是Android中最常用的控件之一,而在使用ImageView时,必不可少的会使用到它的scaleType属性。该属性指定了你想让ImageView如何显示图片,包括是否进行缩放、等比缩放、缩放后展示位置等。Android提供了八种scaleType的属性值,每种都对应了一种展示方式,下面就对每一种scaleType属性值进行图文解释。

2017-03-26 13:47:27 1448

原创 为什么我的Material Design风格列表点击时没有波纹扩散效果

这个问题是我在模仿Chessesquare项目的时候出现的,没想到这个还挺棘手的,主要是麻烦,有几个注意事项。这个问题困扰的时间还挺长,有时候就打算不去管它了,但是在今天却居然莫名其妙的解决了,总结起来就是几个问题是跟很多地方的代码有关,有一处代码不一样,就没有这种效果。

2017-01-13 09:57:11 575

原创 Builder设计模式

Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户再不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。Builder模式有以下使用场景: - 相同的方法,不同的执行顺序,产生不同的事件结果时; - 多个部件或零件,都可以装配到一个对象中,但是长生的运行结果又不相同时; - 产品类非常复

2017-01-13 09:44:55 420

原创 单例模式——最常用的设计模式

单例模式是应用最广的设计模式之一,在这个模式中,单例对象的类必须保证只有一个实例存在。即不能自由构造对象的情况,就是单例模式的使用场景。确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象应该有且只有一个,例如,创建一个对象需要消耗的资源过多,如要访问IO和数据库等资源,这时就应该考虑使用单例模式。单例模式有很多中写法,下面就列出常用的7种

2017-01-09 13:01:46 542

原创 灵活软件之路——面向对象的六大原则

1、单一职责原则Single Responsibility Principle, SRP的定义是:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高的数据的封装。2、开闭原则Open Close Principle,OCP,Java中最基础的设计原则,其定义是:软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改是封闭的。因此,当软件需

2017-01-09 11:52:51 417

原创 Android 写一个可以横向滑动条目的列表

在开发中,会发现很多列表希望条目能够侧滑,侧滑出来一两个按钮什么的,例如QQ就可以侧滑出删除按钮。这边文章就是教大家写一个可以侧滑的自定义控件。另外,本文的内容不是属于Android中比较高深的内容,高手可以略过。通过阅读本文,你可能学习到的知识有: 自定义侧滑控件的实现 Android事件传递简要内容 属性动画ValueAnimator的使用 先来看一下要实现的侧滑是什么

2016-10-28 21:03:30 4437 3

原创 使用Fragment懒加载的一种方式

在很多应用中,首页都是由三个或四个Fragment构成,且都是上中下结构。这种设计方式大行其道,但是作为首页,每一个Fragment的内容肯定是较多的,这个时候直接加载出来,或是默认加载两三个都是有点耗费资源的,特别是在打开应用的时候,如果操作过多可能会卡,所以很多应用在首页都会使用Fragment懒加载,例如微信。对于如何懒加载,也算是Android中比较简单的内容,本文只是针对这个提供一种方法

2016-10-26 13:24:09 638

原创 Android Butter Knife 框架——最好用的View注入

最近在看GitHub上的一些代码时,发现很多工程都用到了Butter Knife这个框架,能节省很多代码量。像findViewById这种代码就不用再出现了,而且这个框架也提供了很多其他有用的注解。 抱着学习的心态看了官网上的文档,挺简单,也很实用,决定以后就用这个库了。

2016-10-26 12:22:16 679

mips[64]el-linux-android-4.9.zip

此文件用于解决 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android 的问题。下载后需要将其解压到你的 NDK 目录下的 toolchains 文件夹中。在打开工程就不会遇到这个问题了。 注意此文件仅适用于 MAC。 此文件来源于 Android NDK r17c 版本中的 mips64el-linux-android-4.9 和 mipsel-linux-android-4.9。这也是新版本 NDK 中被删除的两个工具链。

2020-03-07

空空如也

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

TA关注的人

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