- 博客(75)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 Ndk编译hevc静态库
替换掉上面的目标平台,输出目录,源码路径,ndk路径等信息即可自己编译出android平台下的x265库。命令与上一篇文章大同小异,可以参考上一篇。
2023-12-27 17:54:06 1004
原创 使用Ubuntu编译FFmpeg生成Android动态库/静态库
我这里使用windows里的wsl2的ubuntu,使用物理机或者vmware,vbox之类的安装的ubuntu理论上也可以.gcc编译使用的环境如下:Ndk使用17FFmpeg使用4.0.2.clang编译使用的环境如下:Ndk使用21.4FFmpeg使用6.1FFmpeg下载地址:https://ffmpeg.org/releases/Ndk下载地址在Android官网。
2023-12-25 18:10:04 1371
原创 Android12适配指北
通常我们说的适配一般指两个部分:一个是影响在 Android 12 上运行的所有应用,无论采用哪种 targetSdkVersion 都不例外的部分一个是只以Android12为目标的应用(targetSdkVersion为31)下面说说第一个部分:影响Android 12 上运行的所有应用的部分一.Splash ScreenAndroid12新增了系统默认的App启动页,该启动页会使用App定义的主题和Icon生成。如果不进行适配产生的后果可能会有:1.如果原本使用了android:wind
2021-10-27 18:08:44 1688
原创 android 内存优化(避免OOM)--面试经典问题
如何避免OOMOOM(内存溢出)已使用的内存+新分配的内存>可分配的内存就会抛出OOM,那么避免OOM的思路就是如何去减少内存的使用。通常Android里的oom是堆内存溢出,但是Native heap在物理内存不够时也会抛出oomBitmapBitmap无疑是内存大户,首先看看使用Bitmap的时候可以怎么样优化。1.根据实际情况使用合适分辨率的Bitmap2.注意原始分辨率和内存缩放结果(比如drawable-xdpi,drawable-xxdpi这些文件夹多放几套图和只放一套图的区别
2021-05-08 16:33:10 1185
原创 一个可以生成.9阴影图的网站
http://inloop.github.io/shadow4android/界面如图可以设置阴影颜色,offset,blur,round,还有填充颜色,padding等。另外这个地址打开是真的慢~建议大家下载下来打开index.html本地使用。如果因为某些莫名其妙的原因打不开或者下载不了可以下载我提供的本地版。下载地址:https://download.csdn.net/download/javy_codercoder/13084899...
2020-11-03 15:29:50 1521 1
原创 ScrollView最好不要嵌套FrameLayout
我的布局是这样的<ScrollView><FrameLayout><自定义View/></FrameLayout></ScrollView>刚开始是自定义view头部会被“吃掉”,没错就是自定义view的顶部内容会被挡住,于是我通过修改FrameLayout的Gravity修正了这个问题。然后后来有个需求需要动态更改ScrollView的高度,但是我发现怎么计算都不对,因为ScrollView里面的内容滑到尽头有几百像.
2020-10-13 19:08:26 490
原创 Android N以上使用Charles抓https包
最近开发一款app,调试接口的时候抓包~于是按照以往的经验给手机和pc装证书~一波操作猛如虎。最后发现不行~app全部接口都用不了。开始怀疑人生。后来看了https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/发现原来要进行如下操作才可以的~大概是说需要在res目录新建一个x...
2020-04-09 17:36:45 453
原创 设计模式:说说外观模式(Facade)
最近在学php框架Laravel,发现里面有很多Facade,所以特地去学习了一下,发现原来是某个设计模式。所以写下来做个笔记。例子那么对应到编程之中我们写的某一个功能可能需要调用到很多类,如果后续维护者去维护这个功能的时候也需要清除所调用的每一个类那时间成本太高,而且也不利于维护。各个类之间的联系太多,我们称之为耦合性过高。那么能不能有一个中间类就是为了这个功能服务的,我们只需要把所...
2020-04-08 15:02:31 216
原创 Android:RecyclerView实现横向滑动接近中间的Item居中效果
这个效果有点一言难尽,上个图吧。就是这个效果:当某个item移动到屏幕中间的时候停止滑动这个item会自动滑动向中间。有点像画廊那个效果,但是画廊的图片比较大。那么该如何实现的呢?刚开始我是自己计算的: override fun onScrollStateChanged(recyclerView: RecyclerView, newStat...
2019-12-10 20:43:23 3752 1
原创 Android:记一个关于TabLayout的沙雕问题
在使用TabLayout+AppLayout做了个悬浮折叠多tab的效果之后(效果参见上一篇文章)发现点击TabLayout没反应折腾了好一段时间什么事件拦截反射重新设置onClick都试过没用,后来发现自己犯了一个很沙雕的错。先上代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:...
2019-03-22 15:36:40 228
原创 Android滚动多TAB悬浮头效果
Android滚动多TAB悬浮头效果先看效果图思路开始贴代码如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入先看效果图最近公司项目要实现类似这个效果于是自己...
2019-03-20 15:54:49 1054
转载 Android 使用CardView轻松实现卡片式设计
Material design中有一种很个性的设计概念:卡片式设计(Cards),这种设计与传统的List Item有所区别,Cards包含更多的内容元素和拥有自己的UI特征,关于Cards的设计规范可以参考官网介绍:https://material.google.com/components/cards.html#为了更好地实现这种 Cards UI 的设计,Google在v7包中引进了...
2019-03-19 17:58:57 524
原创 ubuntu mysql 默认密码 设置
好久没安装过mysql了,以前的mysql安装的时候都会弹出输入密码的。最近安装发现直接安装完成中途居然没有弹窗让我输入密码。这下懵逼了,没有密码怎么连接数据库? 先说说我的mysql和系统版本:Server version: 5.7.25-0ubuntu0.18.04.2 (Ubuntu)1.输入 mysql -uroot -h127.0.0.1 -p然后提示Enter pass...
2019-01-25 11:12:47 2418
转载 Android开发中一些被冷落但却很有用的类和方法
来自:http://luckyandyzhang.github.io/Resources.getIdentifier :这个我 用过,记得以前做过一个皮肤切换功能,可以通过这个方法从皮肤包 获取皮肤资源。(皮肤包的资源名称和 主包的资源名称id 名是一样的,因此都是通过名称获取id ,而不是R.id.xxx)Android:clipToP
2017-09-05 14:37:55 455
转载 Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题
最近项目中遇到一个问题,用户第一次安装应用在系统的安装器安装完成界面有“完成”和“打开”两个按钮。当用户点击“打开”按钮进入用户注册页面进行手机号验证码发送和验证码输入等操作界面,若此时用户点击Home键切出应用到桌面,再从桌面点击应用程序图标试图切回应用完成验证码输入等操作时,应用重新走了欢迎页等步骤,此时之前从系统的安装完成界面点击打开启动的应用其实还在后面运行。然而当用户“完
2017-05-23 13:25:12 770
原创 设计模式-适配器模式(Adapter)
适配器模式(Adapter)适配器模式(Adapter) 讲一个类的接口转换成客户希望的另一个接口。大家对于适配器的这个名词应该不陌生了吧,在我们手机的充电器,电脑的充电器上都可以见到适配器三个字。电源适配器。通俗的解释手机电压最多就几伏特,而我们的家用电可是220v那怎么才能做到用家用电去给手机充电呢。适配器就充当了转换的角色。而另一个更加接近适配器模式的例子:翻译。英文不太好的人去到美国怎么跟当
2017-01-14 17:01:07 481
原创 Android性能优化
一.过度绘制:使用手机自带的过度绘制检测,然后在布局文件分析。二.Android图形渲染:减少非必须的view以及减少view的层级。 1.使用Hierarchy viewer:对正在运行的程序界面显示布局层级 2.节点性能分析:对渲染控件的速度进行显示。三.内存泄漏检测:内存泄漏会导致随着app使用时间越来越长占用的内存越来越多。而且还会导致卡慢甚至崩
2016-12-01 10:25:33 372
原创 设计模式:代理模式(Proxy)
代理模式:为其他对象提供一种代理以控制对这个对象的访问仅仅一句话自然是说明不了代理模式是什么,我们先看看代码例子,什么事代理:举一个栗子吧,假设有个人家里有困难,A同学知道了这个人的情况,想捐点钱给他,但是又想做好事不留名,于是好心人让B同学帮忙把钱给这个人。那么我们先建一个People类:class People { String name; People(Stri
2016-08-31 17:12:28 502 1
原创 设计模式:装饰模式(Decorator)
装饰模式,从装饰两个字可以联想到我们身上的首饰啊衣服什么的。因此本文就以穿衣服为例子说说装饰模式。该例子的难点是用程序吧所需要的衣服按照正确的顺序串联起来控制。先简单说说装饰模式:装饰模式,东塔地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。按照笔者的理解,装饰模式就是将多个继承了同一个父类的对象嵌套起来。然后调用的时候按照嵌套的顺序
2016-06-17 16:33:12 582
原创 Android:四大组件之-----广播(Broadcast)
相信很多读者都与笔者一样,在刚学安卓的时候就接触到广播。但是并不知道广播其实也分好几种,我们刚学习使用的只是广播的其中一种:普通广播android的广播分为:普通广播,有序广播,本地广播,Sticky广播,四种。下面就为大家介绍一下这四种广播的区别与用法。一.普通广播 普通广播是异步的,通过context,sendBroadcast()发送。传递效
2016-06-16 16:17:03 1218
原创 软件设计之 开放-封闭原则(OCP)
开放封闭原则:软件实体是可以扩展但是不可以修改。该原则有两个特性:1.对于扩展是开放的2.对于更改是封闭的往往我们在设计程序的时候都是根据现有的需求所设计的,以后需求的改变必然会令到软件的结构有所改变。怎样设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新版本呢? 开放封闭原则可以给我们答案。在实际开发中,绝对的对修改关闭是不可
2016-06-07 10:42:55 820
原创 软件设计之 单一职责原则(SRP)
单一职责原则:就一个类而言应该仅有一个引起它变化的原因(ASD)。笔者刚学编程的时候,是学c语言入门的。c语言是面向过程语言,刚开始习惯了,到现在写程序也会被面向过程思想所影响。到了面向对象编程(java)的时候,很自然地就会给一个类加入各种各样的功能,于是在一个类中写入各种各样的代码。但是这样做的弊端很明显,如果一个类的职责过多,就相当于把这些职责耦合在一起,一个职责的改变可
2016-06-03 22:56:16 486
原创 设计模式:简单工厂模式
简单工厂模式又叫做静态工厂方法模式,不属于23种设计模式中的一种。 简单工厂模式是工厂模式家族中最简单的一种。简单工厂模式具有以下优点:让外界可以从直接创建具体产欧诺对象的尴尬局面解脱出来,仅仅负责“消费”对象就可以了外界不必管这些对象究竟如何创建及组织的明确了各自的职责与权利,有利于整个软件体系的优化有优点自然会有缺点的,那么简单工厂模式还有什么不足的地方?、集中了所有实例的创建逻辑,
2016-05-26 11:29:05 440
原创 Android:Sqlite的使用
在刚接触android的时候就知道有SQlite数据库了,只不过向来对数据库不太感冒,因此做安卓一段时间了都不太会使用Sqlite。于是使用各种sqlite的框架,用以替代。比如郭霖大神的Litepal。不过使用第三方框架有时候也会出现各种问题,而且不懂sqlite的基本使用总感觉不太踏实啊。因此又一次重温了sqlite的知识。并写下来。Android为了让我们更加方便地管理数据库
2016-05-17 15:22:08 633
原创 Android:方向传感器
说起方向传感器,笔者最近刚好用到,在这里记录一下。上网找了一下,关于方向传感器的文章大多数都已经使用已经过时的方法。有一些则是解析过度,看完之后还是不知道怎样使用新的Api。1.旧的用法首先sensorManager获得方向传感器:Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);然后设置
2016-05-03 13:29:12 1591 1
原创 Android:让EditText不自动获取焦点
在使用EditText的时候如果界面中有EditText的话,刚打开这个界面的时候第一个EditText就会自动获取焦点。如果是想要用EditText监听焦点的话。那么就会捣乱了,监听的逻辑。或者在其它操作的时候也可能需要不让EditText自动获取焦点1.其它方法如何让EditText不自动获取焦点,笔者搜索了一下发现有几篇文章都说在第一个EditText前写一个LinearLayout
2016-04-13 17:01:12 4574
原创 Android:6.0运行时权限解析
android6.0发布好一段时间了,但是由于android手机厂商都要对android“深度定制”。因此很多用户都没有第一时间收到android6.0升级推送。笔者用的是魅族手机,到笔者写本编文章为止还没能升级到6.0系统。在这里吐槽一下bugme!android6.0的权限机制发生了较大的变化,特别是对于开发者来说要第一时间掌握如何对6.0的运行时权限进行适配。1.运行时权限的变化在a
2016-04-12 14:48:49 572
原创 Android:TextInputLayout的简单使用
今天看了一下同事新写的登录注册界面,发现点击输入框之后EditText中的hint有浮动动画。于是看了一下实现的代码,发现使用了TextInputLayout这个东东。1.效果一般我们在EditText中写的hint会对当前EditText输入内容进行提示,一旦输入内容之后该EditText中的hint就会消失。这样的效果不算很好。但是使用了TextInputLayout的EditTe
2016-04-09 14:46:46 687
原创 Python:使用property装饰器将方法转为属性
最近看了一下python,学习了点基础。本文就是在学习python过程中的产物之一。一来作为笔记方便日后参阅,二来写出来分享给python初学者。由于笔者的工作语言是java,因此可能回经常将python于java比较。一、property用途有时候在写程序中某些变量是由特殊的范围值的,就好像people中的age属性:年龄一样,总不可能是负数的吧。那么就要对该变量进行检查。一般的做法就是
2016-03-31 16:24:55 2468
原创 Android:EventBus的使用 从此消息传递变得简单
一首先要说的自然是我准备了好几秒钟的开场白:最近看别人的Demo看到一个有趣的框架EventBus,挺有趣,也挺好用。看名称个人理解成事件总线,这个总线负责接收发布者的信息转发给订阅者。不太会画图,暂且看看我用文字粗略表示的“图”: 订阅者也就是说发布者在某处发布了一些信息,已经订阅了该信息的订阅者即可收到该信息。
2016-03-25 15:13:50 1910
原创 Android:官方下拉刷新——SwipeRefreshLayout基本使用
先说说废话实现下拉刷新可以有很多种方式,这里介绍一下官方的SwipeRefreshLayout,看名字就知道是一个Layout(果然废话),笔者觉得使用起来非常简单~~至于好不好看就看个人口味了~~~下面先上一张效果图:使用方法上图就是效果图了,虽然不是动图。但是请各位自行脑补一下刷新图标转动的画面哈。先看一下布局代码: <android.support.v4
2016-02-29 21:31:48 4138
原创 关于java Udp收发数据异常的笔记
笔者前段时间在android上用到udp相关的技术,一般来说无非就是接收与发送两个功能。于是笔者就分别开了两条线程分别创建一个DatagramSocket 去负责接收数据与发送数据。岂料出现了发送或接收不能正常进行的错误~~~然后在网上找到原因了:就是把接收和发送数据的操作都在同一个DatagramSocket上进行。笔者试了一下,果然一切正常进行~如果读者发生了笔者类似的错误,而且又
2016-01-12 17:21:43 2034 2
原创 Android:获取状态栏高度
有时候我们计算控件的位置,特别是自己画控件的时候需要用到各种屏幕高度,宽度,状态栏高度之类的值。获取屏幕宽高的方法网上一大堆,而获取状态栏高度网上虽然也很多但是很多已经过时了,并不能获取到真正的状态栏高度,往往获取到得值是0.那么笔者在这里介绍一种获取状态栏高度的方法:该方法用到反射机制只要通过反射机制获取系统R文件中的dimen类的实例,然后获取该实例中的高度属性:status_bar_he
2015-12-29 10:13:10 585
原创 Android:MediaPlayer播放音频
在安卓中MediaPlayer的应用范围很广,主要用于播放音乐与视频。本文主要介绍如何使用MediaPlayer播放音频。本文分为两个部分第一部分主要介绍播放本地音频,第二部分介绍播放网络音频。使用MediaPlayer播放本地音频文件首先准备一首歌曲,笔者使用的是ywasn.mp3,放在res/raw最简单的用法,莫过于直接创建MediaPlayer对象然后调用start
2015-11-26 22:21:33 3521
原创 Android:图片不加载到内存获取图片的大小
在显示图片的时候往往图片大小并不合适我们手机屏幕大小,我们一般都会对图片进行压缩修改,达到节省内存的目的。那么我们可以怎样获取图片大小呢? Bitmap bitmap=BitmapFactory.decodeFile(""); Bitmap bitmap=BitmapFactory.decodeResource(res, id);我们可以使用以上两种方法,分别适用于获取sd卡上某个位
2015-11-06 16:48:17 6513
原创 Android:Service(三)——Aidl绑定远程服务
远程服务什么是远程服务呢?远程服务笔者觉得是相对于本地服务来说的。本地服务就是运行在同一个进程上的服务,而远程服务就是运行在其它进程上的服务。不同进程间的数据一般都是独立的,若要在不同进程间通讯就要通过特定的方法去沟通。android就提供了aild(
2015-11-06 10:08:07 3996
原创 Android:Service(二)——以绑定方式启动Service
关于Service的线程问题上一篇说了Service的基本使用:Android:Service(一)——Service的基本使用,其中有一点没有提到的是:在service上运行的任务也是运行在主线程上的,所以不要以为开启了服务就可以在里面尽情地做一些耗时任务。不然的话也会导致ui卡顿~可以做这么一个实验,在Activity上输出当前线程的Id然后在Service上也输出当前线程的id,就会发现
2015-11-05 15:17:31 4935
原创 Android:Service(一)——Service的基本使用
Service的基本信息service是androi中四大组件之一(Activity,Service,BroadcastReceiver,Content ProVider),作为四大组件之一可见Service的重要性。那么Service有什么用呢?Service是用来运行没有界面的任务,在后台默默无闻地工作。比如即时通讯软件需要监听服务器有没有新的消息,天气预报app需要定时更
2015-11-05 09:49:48 727
原创 Android:一键find控件,从此告别繁琐的findViewById
记得之前写过一篇博客叫做:你还在苦逼地findViewById吗?使用ButterKnife从此轻松定义控件此文是介绍在eclipse环境下使用ButterKnife的,相比传统的findViewById确实简单了点~但是笔者认为还不够简单~~在谷歌停止对ADT+Eclipse停止更新之后~笔者还苦苦在Eclipse坚持了几个月终于开始转移到Android Studio
2015-10-30 14:44:01 9815 2
gradle-6.0.rar
2020-03-17
Android滚动多TAB悬浮头效果
2019-03-20
Android:关于wifi信号转蓝牙信号的问题
2016-01-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人