自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 anr问题分析

4种:输入(按键、触摸等操作)超时 5s广播响应超时 10s服务响应超时 20s内容提供者响应超时 10s。

2024-03-06 11:48:50 378

原创 常用知识点

收藏gradler讲解gradler讲解

2024-03-05 18:18:23 401 1

原创 Android集成Google登录

手把手快速集成google登录,一分钟就能看明白

2023-09-12 11:24:11 1271 1

原创 Android TIF入门实践

上一篇文章Android Tv Input Framwork翻译了Google对TIF的介绍,但对刚接触TV开发的小伙伴来说,仅仅概念的陈述很难让人理解,加上缺少简洁明了的示例分析,看了之后可能还是一头雾水,实际开发中不知从何下手。本文旨在以示例剖析帮助初学者入门。在认识TIF之前,我们应了解TIF的组成部分我们的TV应用是如何显示信号源的呢?这篇入门文章将详细讲解tif的整个控制流程

2022-11-25 18:44:59 2037 1

原创 Glide无法正常加载图片

Glide加载图片失败。Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE

2022-08-09 16:24:30 11564 4

原创 dump命令

从外部控制状态值进而控制整个应用的功能是否可用,通过在cmd输入adb dump命令就能实现

2022-08-08 12:26:25 1511

原创 开发常用的工具

工作中常用的开发工具

2022-06-03 18:05:22 239

原创 viewbinding编译不通过

问题描述当我们使用viewbinding开发时,在layout添加一个布局.xml后,kotlin代码中使用该布局时提示找不到该viewbinding文件分析dialog_fragment_showallapps.xml我理所当然的认为其对应的viewbinding名称应该是DialogFragmentShowAllAppsBinding,但事实上是DialogFragmentShowallappsBinding,所以一直爆红。那有人会说让studio自动补齐啊,比如只输入“DialogFragm

2022-05-20 15:40:51 658

原创 java转kotlin运行报错

java转kotlin后,运行报错“Expecting a top level declaration”网上有文章说:“剪切一下代码,保存一下,再粘贴上试试”还有文章说:“可以全选删除 然后再 复制黏贴”但经过验证,发现都不行如果你也遇到这个问题,不妨试下以下方案:1.清除缓存,重启studio2.在报错的.kt文件任意一行 按回车 运行代码,运行通过3.删除2步骤中的回车...

2022-05-19 17:16:22 3464 2

原创 Android 换肤方案详解(二)

概述Android 换肤方案详解(一)主要讲解了换肤的原理,但并未动手进行实践。邓小平说过,实践是检验真理的唯一标准,只有动手实践过才算是真正掌握了这项技术。接下来这篇文章分享换肤在实践中的一些心得。ps:因为换肤采用的方案是Android-Skin-Loader,所以本篇幅针对该方案进行分析。可能会遇到的问题及解决方案实践中发现该方案仍存在一些局限只支持xml静态注册view每增加一个换肤属性需要实现一个类动态添加view?因为以上方案是在onCreate()创建view时自定义

2022-04-15 13:09:14 3160

原创 Android 换肤方案详解(一)

引言在我们的开发中,也许有些项目会有换肤的需求,这个时候会比较头疼怎么做才能做到一键换肤呢?大家肯定是希望只要一行代码就能调用最好。下面我们先分析一下换肤的本质是什么?原理换肤,其本质无非就是更换页面元素(view或viewGroup)的属性值,这些属性值都是可以用资源文件表示的,换句话说换肤其实就是替换掉资源文件。比如换个背景,换个文字颜色等。先看一组QQ换肤:分析上面的QQ换肤其中的一个页面,白天和夜间风格只有背景颜色、文字颜色、小图标改变了。再看一组换肤:分析上面的App换肤其中的一

2022-04-01 01:56:46 4022 2

原创 Android 应用瘦身

瘦身目的开发过程中,随着功能不断的迭代,包体积也会逐渐变大,如果此时将包投入市场,将会引来客户的投诉和抱怨。体积大一方面是浪费用户数据流量,另一方面是增加了安装的等待时间,用户可能因为嫌弃安装包太大扬长而去,对企业利润有着直接的冲击,所以应用瘦身环节尤为重要。下面以企业项目做实例分享一下瘦身经验。基本思路其实很简单,主要分两大步骤:了解安装包的组成部分,对安装包的资源目录瘦身1.安装包的组成部分在代码结构双击打包好的apk会出现以下信息,可以直观的看到安装包结构:通过上图,我们可以知道哪些

2022-03-26 06:50:58 4091

翻译 Android TIF框架

TV 输入框架Android TV 输入框架 (TIF) 简化了向 Android TV 传送直播内容的过程。Android TIF 为制造商提供了一个标准 API,供他们创建能够控制 Android TV 的输入模块,并让他们可以通过 TV Input(电视输入源)发布的元数据来搜索和推荐直播电视内容。此框架的目的并不在于实现电视标准或区域性要求,而在于让设备制造商不必重新实现就能够更轻松地满足区域性数字电视广播标准。对于想要创建自定义 TV Input 的第三方应用开发者来说,本部分中的文档可能也

2021-12-22 11:25:53 3027

原创 Android实现流光效果、光影移动效果

概述:开发过程中,看到有些界面用到一道光线在屏幕中掠过的效果,觉得挺炫的。所以查找相关资料自己实现了一遍。先上个预览图:实现思路:简单来说就是在一个view中绘制好一道光影,并不断改变光影在view中的位置。1.首先我们先了解一下光影怎么绘制在了解如何绘制之前,我们先看一下LinearGradient的构造方法 /** * Create a shader that draws a linear gradient along a line. * * @pa

2021-12-21 19:41:53 4381

原创 udp通信的简单使用

文章目录UDP简介与TCP的区别使用场景实现流程:代码结构:代码实现:调用:测试工具:UDP简介UDP(User Datagram Protocol)是一种非面向连接的提供不可靠的数据包式的数据传输协议。类似于快递运输,运输过程中可能出现丢失。Java中有些类是基于UDP协议来进行网络通讯的,有DatagramPacket、DatagramSocket、MulticastSocket等类与TCP的区别TCP是可靠连接传输协议,UDP是不可靠传输协议TCP在传输过程中不会出现丢失数据,一端没

2020-06-11 16:15:43 1057

原创 tcp服务端简单使用

文章目录Socket简介实现流程:代码结构:代码实现:调用:测试工具Socket简介socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信socket通信系统模块示意图:基本socket客户/服务端通信流程示意图:实现流程:socket服务端通信流程建立serverSocket监听端口监听接收实现发送关闭连接代码结构:代码实现:主要实现:package com

2020-06-01 17:19:08 528

原创 tcp客户端简单使用

图5:socket通信系统模块示意图

2020-05-29 17:58:08 819

原创 Android Camera2

Camera学习笔记文章目录Camera学习笔记**使用流程:****代码:****关键类与关键方法:****注意点:****说明:**使用流程:创建预览组件surfaceViewsurfaceView创建好后打开摄像头摄像头状态回调,创建预览至surfaceView拍照SurfaceHolder.Callback()中openCamera() -> CameraDevice.StateCallback 中创建 CameraCaptureSession -> Cam

2020-05-23 10:03:42 818

空空如也

空空如也

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

TA关注的人

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