- 博客(91)
- 资源 (13)
- 问答 (1)
- 收藏
- 关注

原创 Design Patterns in Android:目录纲要
《Design Patterns in Android》(设计模式Android篇),旨在总结自己作为一名Android开发者,在摸索设计模式的过程中爬过的坑,因为很多设计模式的博文,书籍都是针对Java场景的,为了帮助一些Android开发者更贴切的理解和应用设计模式,博文将描述在Android源码中存在的设计模式,以及Android开发实践中如何应用设计模式
2017-01-16 21:15:43
3034
原创 【Linux笔记】AlmaLinux安装screen详细踩坑教程
如何在AlmaLinux上安装screenscreen介绍screen用法简介AlmaLinux安装screen遇到的问题问题1:screen包不存在解决办法:使用源码安装问题2:没有c编译器套件解决办法:安装gcc或者其他C语言编译器问题3:tgetent依赖报错解决:安装ncurses-devel后记:吐槽screen介绍screen像是一个对话容器,方便远程登录后随时进入上次操作对话。举个例子:以CentOS中安装程序为例,程序下载、编译都需要比较长的时间,如果中途遇到网络断开或者SSH软件被关闭
2022-02-14 19:15:48
2747
2
原创 Android OpenGL ES:展示一张2d图片
前言本文的环境和条件:GLSurfaceView + OpenGL ES 2.0代码结构Activity视图使用GLSurfaceView;GLSurfaceView使用自定义GLSurfaceView.Render实现,(GLSurfaceView.setRender());在Render实现图片纹理化和渲染。代码Show the code自定义的GLSurfaceView.Renderer实现。public class BitmapRender implements GLSurfa
2022-01-07 10:39:20
5233
1
原创 Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容
背景有一个项目需要由support迁移至AndroidX,使用Android Studio的Refactor-Migrate to AndroidX。提示需要升级AGP和Gradle版本。于是AGP就升级到了3.5.4,Gradle就升级到了5.6.2。由于项目陈旧,其中有一个moudle模块需要编译so,兼容版本是14(APP_PLATFORM := android-14),项目cpp和mk都还是旧的语法。本来没升级之前jenkins打包是没问题的,设置了ANDROID_NDK_HOME为14的版本目录
2021-12-15 11:35:07
5192
原创 Android踩坑小记:在onResume中申请权限
这里写自定义目录标题背景:不停弹出的Toast定位过程根本原因(转自下面相关链接)后续优化相关链接背景:不停弹出的Toast我们在某个页面的onResume中进行了权限的判断和申请,在权限拒绝的回调onRequestPermissionsResult中添加了一个Toast提示权限获取失败。结果发现权限被拒绝并且“拒绝后不再提示”,Toast不停弹出。同时页面的点击事件失效。定位过程log显示页面的onPause/onResume和onRequestPermissionsResult不停回调。排查on
2021-11-30 16:58:54
2866
原创 Android Parcelable反序列化报错笔记:java.lang.RuntimeException: Unmarshalling unknown type code at offset
Parcelable反序列化报错事件背景代码示意报错原理解决办法事件背景有个实体类,利用Parcelable序列化保存在了本地,在新版本上新增了一个字段后,反序列化取数据时,报错如下:java.lang.RuntimeException: Parcel android.os.Parcel: Unmarshallingunknown type code xx at offset xx代码示意// 旧版本数据结构public class ParcelableObject implements
2021-09-01 14:23:14
3042
原创 Android笔记:OpenGL ES与EGL的关系与实例
简介OpenGL 是跨平台的、专业的图形编程接口,而接口的实现是由厂商来完成的。OpenGL使用这些接口绘制完成后,需要把数据渲染到屏幕上,就需要EGL来接手这部分工作。EGL:全称Embedded Graphic Interface。是 OpenGL ES 和底层 Native 平台 视窗系统之间的接口,如下图所示。EGL介绍EGL接口中含有3个对象,如下图所示:其中:Display(EGLDisplay) 是对实际显示设备的抽象,也就是屏幕Surface(EGLSurface
2021-03-18 16:30:36
877
原创 git使用小记:利用git bisec二分法查找定位bug问题
利用git bisec二分法查找定位bug问题前言操作步骤实操总结前言如果出现bug,很容易想到的是回滚git记录查找bug出现的提交,通常可以手动回滚记录进行定位,找到引入bug的提交进行修复。git提供了一种二分查找的方式帮助开发者快速定位bug引入的提交。很久没用做个记录。操作步骤开始git二分定位标记包含bug提交标记上一个不含bug的提交运行验证进行标记重复2~5步定位bug git提交结束git二分查找修复bug实操步骤1:开始二分查找$ git bisec s
2020-09-18 17:57:20
1355
原创 CPP小记:CLion for Mac报错Ignoring CMAKE_OSX_SYSROOT value,XCode not exist
目录背景原因解决办法报错解决办法一安装XCode方法1安装XCode方法2报错解决办法二结束背景在使用CLion中温习C++的过程中,发现了一个报错:CMake Warning at /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.15/Modules/Platform/Darwin-Initialize.cmake: (message):Ignoring CMAKE_OSX_SYSROOT value:/Applicat
2020-08-07 09:54:58
2927
1
原创 小米4开启太极·阳
机型小米4有很多版本,手中手机后面的入网许可证写着的是TD-LTE,系统设置中的名称为:MI4LTE刷入开发版Rom小米4 miui官网rom地址:小米4 小米4-电信3G版/移动版/联通版小米4 miui rom官方下载地址:miui_MI3WMI4W_8.9.13_8001b58f3b_6.0.zip按照官方刷机教程刷入开发版rom,刷入前记得双清。获取root权限刷完rom后,打开安全中心-应用管理-权限管理-root权限开启刷入第三方recovery...
2020-07-08 17:43:18
2158
转载 Android笔记:AlbumSaver图片视频保存工具类
背景Android中,有时需要操作生成一些图片或者视频,但不是你生成保存了就可以的,如何让生成的图片或者视频文件让其他app应用检索到,也是需要考虑的一个问题,下面这段代码是摘自某sdk demo的源码,刷新媒体数据库的方式让其他app可以方便的读取到港生成的图片或者视频文件,兼容各个Android版本。代码块AlbumSaverimport android.content.ContentResolver;import android.content.ContentValues;import an
2020-07-06 17:58:08
644
3
原创 Linux使用小记:命令行打开/禁用触摸板鼠标
Linux手残笔记手残笔记两种方式感谢链接手残笔记由于手残,在LiteOS/Linux提供的GUI面板中将触摸板鼠标禁用了,导致无法使用触摸板和鼠标,只能用键盘操作,幸好能打开终端工具,得以复原设置。纯键盘打开终端应用:win键/command键(打开左下角菜单),自动弹出搜索框, 搜索Terminal(你自己的终端名字),回车即可使用终端方式二:Ubuntu快捷键,Ctrl+Alt+t两种方式命令行打开/禁用触摸板鼠标的有两种方式modprobe# 关闭触摸板sudo modpr
2020-07-01 10:44:44
2250
转载 在IDEA/Android Studio中调试Gradle Plugin插件
本文转载自:milovetingting《在Android Studio中调试Gradle插件》http://www.milovetingting.cn/2020/02/25/Android/%E5%9C%A8Android%20Studio%E4%B8%AD%E8%B0%83%E8%AF%95Gradle%E6%8F%92%E4%BB%B6前言在开发Gradle插件时,经常会需要通过调试来排查问题,如果只使用日志输出来定位的话,效率不高,可以通过单步调试来定位问题。关于调试插件的资料,网上比较多,最终
2020-05-13 09:51:45
1907
原创 AndroidNetworkWatcher:简化网络监听业务代码
前言Android开发中经常遇到需要监听网络变化的场景,比如播放,比如访问网络时进行断网提示,于是有了今天的AndroidNetworkWatcher。项目地址AndroidNetworkWatcher:https://github.com/xiong-it/AndroidNetworkWatcher技术原理主要是将网络变化监听广播进行了封装,同时定义运行时注解,在网络变化时调用业务层代...
2019-10-17 16:53:26
454
原创 Android开发脚手架:扩展定制EasyShare进行社会化分享
EasyShare一个Android社会化分享脚手架,集成微信,qq,微博分享。作用利用抽象工厂,工厂方法,桥接模式搭配Java泛型封装的一个简单易扩展的分享组件,无法代替ShareSDK等商业化SDK使用,仅供开发交流探讨,不建议线上项目直接使用,可供开发者参考扩展。架构IShareContent:分享的内容接口定义,具有share行为,通过桥接模式将share行为交给IShare...
2019-04-18 18:13:32
1214
原创 Android OpenGL学习:最小系统绘制
文章目录最小系统目标整体流程编写着色器脚本定义三角形定义渲染器应用渲染器OpenGL管道概述(题外)最小系统目标利用OpenGL对应api在屏幕上绘制一个平面三角形。整体流程编写着色器脚本定义三角形定义渲染器应用渲染器编写着色器脚本vertex_shader.glsl 顶点着色器attribute vec4 vPosition;void main(){ gl_Po...
2019-03-14 16:47:36
809
原创 Android小记:自定义Button导致RecyclerView列表监听onScroll回调异常
onScroll回调一直被重复回调,导致程序运行异常原因排查解决
2018-10-12 11:01:48
558
原创 Android开发笔记:RecyclerView.addView()导致NullPointerException
背景最近想实现一个控件漂浮在Item上的效果,需要随着List滑动改变漂浮控件的位置。效果如下图:最开始的2种方案利用Window.addView(),滑动时updatePosition利用RecyclerView.addView(),滑动时改变漂浮控件floatView的layoutParams.margin第一种,利用Window更新位置稍微复杂点,放弃。第二种,Recycl...
2018-09-27 17:55:05
3267
原创 Android笔记:控件坐标一张图全解
注:图中蓝色小圆点代表的触摸事件View.getLeft()/Top/Right/Bottom:控件相对于父布局左上角的距离 Event.getRawX()/RawY:触摸点相对于屏幕左上角的坐标 Event.getX()/Y:触摸点相对于自身左上角的坐标...
2018-07-11 11:04:59
497
原创 Design Patterns in Android:装饰模式
前言装饰模式是干嘛的呢?它在项目中有哪些用途呢?装饰模式在Android源码中有哪些应用呢?本文将和读者朋友一起分享探讨装饰者模式在Android中的应用和实践。本文原创作者MichaelX。 CSDN博客:https://blog.csdn.net/xiong_it 掘金主页:https://juejin.im/user/56efe6461ea493005565dafd 知乎专栏:...
2018-06-13 14:12:52
646
原创 Android笔记:热修复,插件化开发,增量更新一览
热修复:用于bug线上修复,无需发布新版本,无需用户覆盖安装 插件化:扩展主应用程序,zip,jar,dex,apk(无需安装)几种形式 增量更新:用户下载新旧版本apk的差分包,合并本地data下的apk用以升级,关键词:bsdiff,合并
2018-05-18 16:21:44
564
原创 Design Patterns in Android:责任链模式
前言非常抱歉,本系列博客长达半年没更新了,今日偶得灵感,更新一波《设计模式Android篇:责任链模式》。点击此处查看《Design Patterns in Android》系列其他文章。 本文原创作者MichaelX。 CSDN博客:http://blog.csdn.net/xiong_it 掘金主页:https://juejin.im/user/56efe6461ea4...
2018-05-14 17:55:55
470
原创 Hexo遇上Travis-CI:可能是最通俗易懂的自动发布博客图文教程
今天笔者就来介绍下利用[travis-ci]这个持续集成平台简化发布流程.
2017-11-30 14:29:22
3112
原创 Android:使用LoadingLayout来展示加载数据时不同状态
LoadingLayout是应用于Android中的一个加载数据不同状态的类库(自定义控件)
2017-11-21 13:16:10
1799
原创 Android开发:RecyclerView平滑流畅的滑动到指定位置
RecyclerView.smoothScrollToPosition(int);发现效果并不理想,滑动过程很突兀,很快就滑动到了指定位置,并没有像函数名那样smooth,本文将分享如何使得RecyclerView平滑流畅的滑动到指定位置。
2017-10-17 20:11:02
15219
1
原创 Android开发小记:编译ijkplayer以支持更多视频格式
今天分享下自己动手编译ijkplayer以支持avi,mpeg/mpg等更多格式视频。
2017-09-22 21:11:19
7103
2
原创 Android开发小记:命名空间错误导致自定义属性不生效
最近在使用自定义控件的时候发现预览有效果,可是运行起来就不展示,最后才发现自己的布局中的命名空间有问题,导致了控件不展示
2017-09-12 17:49:47
3206
原创 Design Patterns in Android:工厂方法模式
今天给大家分享的是《设计模式Android篇:工厂方法模式》。 工厂方法是创建型模式的一种,可用来在适当的场合创建对象。今天将通过Android源码和Android开发案例跟大家讲解什么是工厂方法模式。
2017-06-28 11:57:01
843
原创 Android开发:使用AutoInputAuthCode快速实现自动填写验证码
AutoInputAuthCode是一个帮助Android开发者快速实现自动填写验证码的类库
2017-05-09 13:47:59
4664
原创 [Github使用简明教程]如何提交代码到Github
可能很多人听过Github,也上过Github,甚至从Github获取过许多开源的代码,但是如果要将项目代码上传到Github上时却束手无策
2017-04-01 15:08:25
10087
原创 Android开发:使用EasyPay打造全能移动支付框架
EasyPay是一个开源的聚合支付可定制化框架,目前已集成微信APP支付,支付宝APP支付SDK。银联支付(开发中)。Android开发者只需要简单调用EasyPay的几行代码,即可调起支付客户端,完成支付流程,得到支付结果。EasyPay宗旨:简单,易用,可扩展。
2017-03-22 15:05:18
8974
1
原创 Ubuntu 14.04编译AOSP for Nexus/Pixel
虽说几年前博主在一家公司做机顶盒的时候总是需要编译Android源码,但是那时还没有手中的爱机:Nexus 6,又名shamu。今天我要为它刷入一个自己编译的Rom。拿起键盘就是干。
2017-03-12 22:06:36
6994
原创 Android:BLE智能硬件开发详解
前些年,智能硬件炒的挺火的,那今天,咱就来说说智能硬件那些事。BLE是智能硬件的一种通讯方式,通过BLE连接,iOS & Android手机和智能硬件就可以进行自定义的交互了
2017-03-09 20:14:04
8344
3
原创 Android开发:视频播放横竖屏切换回忆笔记
前言话说这个功能还是两年多前做的,当时博客草稿箱留了这篇博客标题,已经很久了,但是到现在,依旧没有在网上看到一些相关的博客介绍,可能是太简单了?今整理博客,在这将自己的回忆记录成此,如有纰漏,还望斧正。
2017-03-07 21:32:47
3576
Android NDK百度网盘下载地址
2021-12-16
Android:微信登录,微信分享demo 源码
2015-09-11
adb_tool_windows.zip
2015-08-05
Android:LocationManager定位demo
2015-07-20
Android:LocationManager定位demo
2015-07-20
Android TVBox遥控器组合快捷键Demo
2015-03-12
Android的DownloadManager下载完成广播接收者
2015-02-01
android意图行为选择器实现分享功能
2015-01-30
软件版本号获取工具
2015-01-28
JDK1.7官方版下载(直接在资源描述处链接下载即可)
2015-01-23
TestCamera.rar
2015-01-12
adroid.content.pm.zip
2015-01-12
微信开发:(Android)在线图片无法分享,发送按钮无法点击
2015-07-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人