
Android
文章平均质量分 67
别志华
这个作者很懒,什么都没留下…
展开
-
NDK - CFLAGS、CXXFLAGS、LDFLAGS、LIBS含义
名词含义CFLAGS:用于 C 编译器的选项。CXXFLAGS:用于 C++ 编译器的选项。LIBS:告诉链接器要链接哪些库文件。LDFLAGS:GCC 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。阐释CFLAGS、CXXFLAGS,这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中原创 2021-06-12 15:11:28 · 1201 阅读 · 0 评论 -
Crash: ‘SQLiteDatabaseCorruptException: file is encrypted or is not a database‘的分析与解决
title: “Crash: 'SQLiteDatabaseCorruptException: file is encrypted or is not a database’的分析与解决”tags:先说解决方案与结论方案如果使用的Room库,那么需要按照如下方法设置JournalMode:Room.databaseBuilder(context, XXX::class.java, DATABASE_NAME) .setJournalMode(JournalMode.原创 2021-04-17 19:58:46 · 4505 阅读 · 2 评论 -
LIBDSM库对多平台、多方案支持的开发与探索 - Native Module
系列文章LIBDSM库对多平台、多方案支持的开发与探索 - 准备LIBDSM库对多平台、多方案支持的开发与探索 - Native CommonLIBDSM库对多平台、多方案支持的开发与探索 - iOSLIBDSM库对多平台、多方案支持的开发与探索 - AndroidLIBDSM库对多平台、多方案支持的开发与探索 - FlutterLIBDSM库对多平台、多方案支持的开发与探索 - U...原创 2020-03-14 19:25:58 · 16680 阅读 · 0 评论 -
LIBDSM库对多平台、多方案支持的开发与探索 - 准备
系列文章DSM库对多平台、多方案支持的开发与探索 - 准备DSM库对多平台、多方案支持的开发与探索 - Native CommonDSM库对多平台、多方案支持的开发与探索 - iOSDSM库对多平台、多方案支持的开发与探索 - AndroidDSM库对多平台、多方案支持的开发与探索 - FlutterDSM库对多平台、多方案支持的开发与探索 - Unity项目地址 - https...原创 2020-03-14 10:53:41 · 7057 阅读 · 0 评论 -
Fragment(1)-生命周期方法与Fragment视图是否可见间的细节
前言根据ViewPager+Frgment的小例子,来研究Fragment生命周期方法与Fragment视图是否可见间的细节。正文所用资源:ViewPager+Fragment,ViewPager只默认预加载1页,共三个Fragment。动作1:执行App,界面显示//PlaceholderFragment: 1 setUserVisibleHint() called with: isVisible原创 2015-12-09 14:13:28 · 2657 阅读 · 0 评论 -
Mockito中java.lang.noclassdeffounderror android/support/v4/app/taskstackbuilder$supportparentable
问题运行单元测试(mockito)时,出现java.lang.noclassdeffounderror android/support/v4/app/taskstackbuilder$supportparentable解决mockito模拟的数据,不应该包含自定义的Activity类型。例如:BaseActivity原创 2016-05-13 16:44:58 · 1326 阅读 · 0 评论 -
Android关于销毁你所应该知道的
finalize()用途何在五步看懂:我们都了解初始化的重要性,当常常会忘记同样也重要的清理工作。在Java中有垃圾回收器负责(GC)回收无用的对象占据的内存资源。但是也有特殊情况:假定你的对象(并非使用new)获得一块“特殊”的内存区域。为了处理这种情况,Java允许在类中定义一个名为finalize()的方法。它的工作原理“假定”是这样的:一旦垃圾回收期准备好释放对象占用的存储空间,将首先调用f原创 2016-05-09 23:52:34 · 3844 阅读 · 0 评论 -
MeasureSpec笔记
正文View最终测量尺寸由View本身和其父容器共同决定的,如何在一定程度上顺应爹的“意愿”呢?这主要体现在对MeasureSpec类的使用。MeasureSpec: MODE 含义 UNSPECIFIED 未指定,爹不会对儿子做任何的束缚,儿子想要多大都可以,一般用于系统内部测试。 EXACTLY 完全,儿子多大爹心里有数,爹早已算好了 AT_MOST 至多,爹已经为转载 2015-12-07 13:49:15 · 1045 阅读 · 2 评论 -
RecyclerView解析
RecyclerView基础概念 专业术语 Adapter(适配器) RecyclerView.Adapter的子类,负责提供很多视图(views),用以表示数据集合中的数据 Position(位置) 一个数据项在Adapter内的位置 Index(索引) 调用getChildAt(int)时,获取指定位置绑定的子视图的索引位置,和Position是对照物. Bi原创 2016-07-27 14:34:12 · 3585 阅读 · 0 评论 -
ExoPlayer (待修订)
ExoPlayer原创 2016-07-08 14:35:11 · 3228 阅读 · 0 评论 -
JNI - 加解密时错误的使用strlen和strncpy函数
最近在将一个Java的解密算法移植到C层,碰到一些问题,在此记录下来。算法步骤: 1. 给定一个字符串,获取byte数组。 2. 对byte数组,从低到高排序 3. 对byte数组md5 4. 对byte数组,从高到底排序 5. 对byte数组md5 6. 对byte数组,从低到高排序 7. 对byte数组md5拿到最后的最结果以上的算法在Java层还是很容易实现的:/** * by原创 2016-07-19 11:40:59 · 1145 阅读 · 0 评论 -
Android中如何处理耗时操作,AsyncTask有什么不足之处.
Android中处理耗时操作的基本思路为将耗时的操作放到非UI线程执行.常用的是AsyncTask,Handler,Thread,Executors等.关于放在非UI线程处理的思路大概有这样几种,一种是每次耗时操作启动一个线程,代价比较大,另一种是将所有的一部分放入队列,有一个或者几个线程去执行,例如HandlerThread和AsyncTask.AsyncTask使用起来比较轻量,但是自身也存在一原创 2016-08-30 10:48:18 · 3041 阅读 · 1 评论 -
OKHttp3.0的日常及入门
前言Okhttp作为现在最火的一个网络请求框架,已经有无数牛人给出了工具类等等。例如: 鸿洋大神的 Android 一个改善的okHttp封装库 和 Android OkHttp完全解析 是时候来了解OkHttp了 以及 Android Https相关完全解析 当OkHttp遇到Https还有凯子哥的 开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用原创 2016-01-31 11:50:25 · 27762 阅读 · 6 评论 -
样式的继承
样式的继承创建继承其他样式的新样式非常简单,具体有两种方式可供选择。一种是设置样式的parent属性为要继承样式的名称。 另一种是将父样式的名称加上“.”符号后,作为前缀直接附加给样式名称,如ParentStyleName.MyStyleName。显然,第二种方法要更简单一些。原创 2016-01-06 23:41:32 · 1154 阅读 · 0 评论 -
练习:雷达控件
一个练习控件处理了多种多边形的情况处理了onMeasure()和padding值处理了多边形没有被方正的情况处理了文字摆放位置和角度的问题(还有缺陷)思路画网画线画文字处理文字显示方向画值区域github地址:https://github.com/biezhihua/BzhRadar原创 2015-12-09 14:20:34 · 1048 阅读 · 0 评论 -
IPC进程间通信 - 介绍
正文 名称 优点 缺点 适用场景 Bundle 简单易用 只能Bundle支持的数据类型 四大组件间的进程通信 文件共享 简单易用 不适合高并发场景,并且无法做到进程间的即时通讯 无并发访问情形,交换简单的数据实时性不高的场景 AIDL 功能强大,支持一对多并发通讯,支持实时通讯 适用稍复杂,需要处理好线程同步 一对多通讯且有RPC(远程原创 2015-11-23 11:50:38 · 1343 阅读 · 0 评论 -
Fresco正传(6):如何将PhotoView与Fresco的加载机制相结合,解决超大图显示
前言上图引狼正文在前几篇文章中已经详细的介绍了Fresco。那么现在就具体应用学习到的东西,来看看PhotoView如何与Fresco相结合。还记得DraweeView分析这篇文章吗?在其中介绍了DraweeView内部实际上是有一个DraweeHolder对象,持有了DraweeHierarchy和DraweeController的引用。在官方文档中,也实际一些DraweeHolder的用法,主要原创 2015-11-24 15:24:35 · 7324 阅读 · 10 评论 -
Fresco正传(7):如何手动清理Fresco的缓存。
前言这篇是随手写的,有博友在楼下提问相关问题。这里先把我知道的方案放这里,以后有空详细写。另外,请注意:虽然我找到了如何清理缓存的方法,但是目前还未实际测试过。请自行测试哦。原创 2015-11-17 21:14:10 · 10064 阅读 · 5 评论 -
好用的网络请求库Retrofit2(入门及讲解)
前言首先,先给出官网:GitHub-Retrofit 官网-Retrofit其次,要吐槽一下官网首页给出的例子。如果你照着例子改,会发现根本没法运行,不是少包就是少关键语句。相关内容可以参看我的另一篇文章:Retrofit(2.0)入门小错误 – Could not locate ResponseBody xxx Tried: * retrofit.BuiltInConverters小栗子(exa原创 2015-10-18 23:03:01 · 35492 阅读 · 17 评论 -
PorterDuffXfermode笔记
正文 模式 意思 解释 PorterDuff.Mode.ADD 饱和度相加 PorterDuff.Mode.CLEAR 清除 PorterDuff.Mode.DARKEN 变暗 两个图像混合,较深颜色的总是会覆盖较浅的颜色,如果两者深浅相同则混合 ProterDuff.Mode.DST 只绘制目标图像 PorterDuff.Mode原创 2015-12-03 09:38:52 · 950 阅读 · 0 评论 -
工作日常问题记录与解决 更新日期:2016/1/22
不重复掉坑里两次工作日常问题解决与记录 更原创 2016-01-22 11:54:38 · 5645 阅读 · 2 评论 -
Android-SharePreferences的commit和apply
apply方法在官方SDK说明如下:Commit your preferences changes back from this Editor to the SharedPreferences object it is editing. This atomically performs the requested modifications, replacing whatever is curren原创 2016-09-07 14:28:45 · 1020 阅读 · 0 评论 -
Android-LinearLayout的weight属性分配原则分析
weight分配原则原创 2016-09-07 23:56:35 · 1075 阅读 · 0 评论 -
Android - ViewPager - Transformer
public class TestPageTransform implements ViewPager.PageTransformer { @Override public void transformPage(@NonNull View page, float position) { int pageWidth = page.getWidth(); ...原创 2019-07-09 15:36:28 · 274 阅读 · 0 评论 -
Android - FFmpeg 自动化构建工具(FFmpeg4.1 + OpenSSL1.1.1 + NDK13/14/1516/17/18/19)
FFmpegBuildTool (中文)Github地址:https://github.com/biezhihua/FFmpegBuildToolAndroid下FFmpeg自动构建工具。帮助你快速构建自己的FFmpeg静态库。我的环境MacOS 10.14.2NDK android-ndk-r16b (目前仅支持16b版本)架构 - armv7a/armv8a/x86/x86_6...原创 2019-01-09 22:59:04 · 2788 阅读 · 16 评论 -
Mac - FFmpeg - 本地编译错误 - symbol(s) not found for architecture x86_64
问题在编译FFmpeg的时候报了如下错误:ld: symbol(s) not found for architecture x86_64clang: error: linker command failed with exit code 1 (use -v to see invocation)make: *** [ffmpeg_g] Error 1解决在配置项中加上--cc=clan...原创 2018-11-28 13:33:34 · 3107 阅读 · 6 评论 -
Android - 解决Fragment + ViewPager的生命周期问题
public class FragmentVisibleHelper implements LifecycleObserver { private static final String TAG = "VipVisibleHelper"; public interface IVisibleListener { void onVi...原创 2018-10-23 11:52:06 · 706 阅读 · 0 评论 -
App - 电影天堂第三方客户端
前言电影天堂App是电影天堂(网站版)的第三方客户端,一切资源都从该网站获取.下载地址:https://www.coolapk.com/apk/com.bzh.dyttGithub地址:https://github.com/biezhihua/DYTT使用到的技术项目架构使用了Android Architecture Compontens,其中主要涉及到的包括:LiveDataVi...原创 2018-10-19 18:30:16 · 10781 阅读 · 1 评论 -
浅析 - Android Lifecycle Component
浅析 - Android Lifecycle Component前言简要介绍相关类Lifecycle的初始化流程怎样的?Lifecycle的状态如何改变以及如何分发的?Lifecycle是如何解析生命周期状态的?前言关于Lifecycle基础相关的使用与概念请移步这里:https://blog.youkuaiyun.com/guiying712/article/details/81176039#处理-...原创 2018-09-22 21:39:43 · 1128 阅读 · 0 评论 -
浅析 - Android LiveData
前言https://developer.android.com/reference/android/arch/lifecycle/LiveData?hl=zh-cnhttps://developer.android.com/topic/libraries/architecture/livedata?hl=zh-cnLiveData在整个架构体系中起到了桥梁作用,此外LiveData还持有了数...原创 2018-09-27 15:15:07 · 942 阅读 · 0 评论 -
Android - 为Kotlin添加(logm/logd)等快捷方法
在这个地址,将文件下载到本地。让后将文件放到如下的文件夹下,如果没有可以自行创建:Windows: <your_user_home_directory>.IntelliJ IDEA<version_number>\config\templatesLinux: ~IntelliJ IDEA/config/templatesmacOS: ~/Library/Pr...原创 2018-08-24 17:44:09 · 1851 阅读 · 0 评论 -
Android - JetPack
JetpackJetpack是一系列库、工具、架构组成的,帮助开发人员快速方便的构建Anroid App。目标1) 加速开发 各个组件间相互独立,又可以彼此配合工作。使用kotlin特性能让生产效率更高。2) 消除无用代码 Android Jetpack管理各种枯燥的行为,例如后台任务、导航、生命周期管理,能让开发人员聚焦于App业务开发。3) 构建高...原创 2018-07-21 18:43:24 · 9817 阅读 · 0 评论 -
Android - ViewPagerHelper - 可以识别出ViewPager滑动方向的帮助类
Demo地址:https://github.com/biezhihua/ViewPagerHelper.gitViewPagerHelper一个可以识别出ViewPager滑动方向的帮助类。public interface IViewPagerTrendListener { /** * 当一个页面被完全选定时调用。该方法会在{@link #onPrePage...原创 2018-06-20 10:56:52 · 1047 阅读 · 0 评论 -
Android - TabLayout设计思路与实现思路
UI设计思路https://material.io/design/components/tabs.html#解剖图:https://material.io/design/components/tabs.html#anatomy行为:https://material.io/design/components/tabs.html#behavior 如何放置:https://m...原创 2018-07-01 23:13:04 · 1372 阅读 · 0 评论 -
Android - DelayQueue
很好的教程:http://www.baeldung.com/java-delay-queue原创 2018-06-21 10:35:53 · 322 阅读 · 0 评论 -
Android - 不完全测试驱动开发实践 - 初级篇
前言测试驱动开发(TDD)是我一直想要尝试和使用开发方法,但是直至今天才有机会第一次将其应用到正式开发阶段。从开始的模糊,到慢慢了解如何使用,再到借助它将逻辑捋的越来越清楚,再到之后每次跑完所有测试带给我的信心,我知道这就是我想要的,开发过程再也不是碰运气,我拥有了使用代码测试代码的能力。因为是不完全从测试驱动开发,本片文章有所不准确的地方也请大家指正。感谢我的团队~导读...原创 2018-05-12 11:52:42 · 1218 阅读 · 0 评论 -
Android - Architecture (Resource & NetworkBoundResource)
最近在研究Architecutre与相应的Demo-GithubBrowserSample,同时也利用这些技术重写了DYTT。收获很多,但是迷惑的点也有很多。相信看过GithubBrowserSample与Architecture引导的朋友对Resource与NetworkBoundResource一定不会陌生,今天主题也主要围绕这些方面:Resource的作用是什么?为什么要有它、好处...原创 2018-04-03 11:19:01 · 2339 阅读 · 0 评论 -
Android - 架构组件学习(Android Architecture components)
开篇对架构组件整体结构的学习:其中包含一个视频,高度概括了Android Architecture compontens由哪几部分构成,各个部分分别是什么作用。Room: 是一个强大的SQLite对象映射库。ViewModel:是一类对象,它用于为UI组件提供数据,在设备配置发生变更时依旧可以存活。LiveData: 是一个可感知生命周期、可被观察的数据容器,它可以存储数据,还会在数...原创 2018-03-18 23:57:42 · 1334 阅读 · 0 评论 -
Android基础笔记(二)-数据存储和界面展现
测试的相关概念Android中的单元测试日志猫的介绍登陆案例把数据保存到SD卡上Android中几个常用的目录获取SD卡的大小及可用空间文件权限的概念SharedPreferences使用Android官方推荐的生成XML的方式Android官方推荐的解析XML的方式测试的相关概念好的程序不是开发出来的,是测试出来的。根据是否知道源程序源码:黑盒测原创 2015-03-07 00:43:44 · 3119 阅读 · 3 评论 -
如何做好全屏化的交互体验(解决EditText导致的界面上移、挡住等问题)
EditText导致的问题在使用EditText并且将其放在屏幕底部的时候,往往会使用例如:android:windowSoftInputMode="adjustResize|stateHidden"等这样的参数,但是它有着很大的缺点,会导致界面上移、EditText被挡住的问题一些问题。简单思考EditText键盘弹出后为什么导致界面上移呢?不从代码层次上考虑,当键盘弹出后,键盘本身占据一定空间会原创 2016-04-03 14:33:01 · 11704 阅读 · 5 评论