自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ocean的博客

想你所需

  • 博客(80)
  • 收藏
  • 关注

原创 ubuntu中执行gradle提示JAVA_HOME错误

sudo gedit ~/.bashrc 查看环境变量设置。$ source ~/.bashrc 使设置的环境变量生效。$ echo $JAVA_HOME 查看java环境变量的设置。将你的jdk关联到gradle要求的目录中去。

2023-09-07 16:58:25 214

原创 Android笔记 自定义控件时drawText字符串宽度的3种计算方式

/1. 粗略计算文字宽度://2. 计算文字的矩形,可以得到宽高://3. 精确计算文字的宽度:if(str!= null &&!i < len;i++)

2023-08-29 18:22:43 601

转载 Binder系列7—framework层分析

binder在framework层,采用JNI技术来调用native(C/C++)层的binder架构,从而为上层应用程序提供服务。看过binder系列之前的文章,我们知道native层中,binder是C/S架构,分为Bn端(Server)和Bp端(Client)。对于java层在命名与架构上非常相近,同样实现了一套IPC通信架构。framework Binder架构图:查看大图图中红色代表整个framework层 binder架构相关组件;

2023-07-20 17:26:36 160

原创 SystemUI详解

SystemUI是Android操作系统的一个关键组件,主要负责管理和提供用户界面的核心元素,如状态栏、导航栏和锁屏界面等。从下面两点出发了解SystemUI的特性:SystemUI是操作系统中的一个系统级应用程序,负责管理和呈现用户界面的重要元素。它提供了与用户交互的界面元素,包括状态栏、导航栏、通知和快捷设置等。SystemUI通过提供用户界面和交互方式,使用户能够轻松访问系统功能和通知。SystemUI紧密集成在Android操作系统中,作为核心组件之一。

2023-07-18 11:44:08 1887 1

原创 获取指定应用的后台状态

/ QQ在后台运行。// 如果当前没有运行中的QQ进程,默认为QQ在后台运行。// 检查当前QQ进程是否在前台运行。// 获取当前所有正在运行的进程信息。

2023-06-25 16:25:48 343

原创 使用内存分析器查看应用的内存使用情况

https://developer.android.com/studio/profile/memory-profiler?hl=zh-cn

2023-05-23 16:00:19 56

原创 Android 开发Android系统电视APP须知

1,通过WiFi,或网线让电视和您的开发电脑在同一个局域网里2,通过adb指令连接上电视,将apk运行到电视中知道设备IP地址之后,就可以用adb connect命令通过IP和端口号连接adb。adb connect 10.129.49.1433,如果adb您没有在您的开发程序上配置,需要先配置adbadb连接手机进行调试有两种方式,一种是使用USB线,另一种是使用无...

2023-03-30 18:29:00 650

原创 协程的原理

进行调度,通过将数据流立刻yield掉(主动让出),并且记录当前栈上的数据,阻塞完后立刻再通过线程恢复栈,并把阻塞的结果放到这个线程上去跑,这样看上去好像跟写同步代码没有任何差别,这整个流程可以称为coroutine,而跑在由。在单线程中,一个函数调用,一般是从函数的第一行代码开始执行,结束于 return 语句、异常或者函数执行(也可以认为是隐式地返回了 None );因此,协程的开销远远小于线程的开销,也就没有了ContextSwitch上的开销。有了协程,我们在函数的执行过程中,如果遇到了。

2022-10-08 16:19:18 469

原创 Android Studio layout Captures 布局检查器

利用 Android Studio 中的布局检查器,您可以在运行时从 Android Studio IDE 内检查自己应用的视图层次结构。如果您的布局在运行时(而不是完全在 XML 中)构建并且布局没有按预期显示,这种检查将非常有用。如果您的布局包括重叠视图,则默认情况下,只有前面的视图可以在屏幕截图中点击。要让后面的视图可以在屏幕截图中点击,请执行以下操作: 在。仅会让屏幕截图中的可点击边界消失,以便您可以点击在它后面的视图。对话框中,选择您想要检查的应用进程,然后点击。窗口中的布局检查器快照。

2022-09-30 16:30:49 560

原创 Ubuntu配置host

Ubuntu配置host

2022-09-13 16:52:53 1097

原创 git常用指令

git常用指令

2022-09-13 16:50:49 65

原创 Linux 常用命令大全

Linux 常用命令大全

2022-09-13 16:49:02 88

原创 Android开发之socket搭配usb通信实现手机下发给其他设备指令

Android开发中USB串口通信开发主要涉及到以下几个类及相应的方法:1 ,UsbManager:负责管理USB设备的类,你可以在相应代码中通过以下方法获得//获取UsbManager实例方法UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);该类提供的主要方法有:1) getDeviceList()获得设备列表,返回的是一个HashMap.;2) hasPermission(UsbDevice d

2022-08-23 15:13:19 575

原创 Android 开发Android系统电视APP须知,包含配值adb环境,无线开发

1,使用无线WiFi连接或链接网线,让您的电视和您的开发工具在同一个局域网内2,配值您的adb环境,可以直接在您的开发工具里直接配值3,保证这两个目录下都有这三个文件4,将这两个目录配制到环境变量里5,再将之前的三个文件配值在这个目录,这些都配值完成,AndroidStudio和黑窗口都可用adb了接下来是连接步骤:命令行输入:adb connect ...

2019-12-23 09:57:28 474

原创 Andrdoid 集成OSS 图片上传

1.配置依赖:compile'com.aliyun.[dpa:oss-android-sdk:+](http://dpaoss-android-sdk+/)'//这里用sdk+ 是为了随时跟随oss的版本更新,oss也会随时修复bug。 compile'com.squareup.[okhttp3:okhttp:3.4.1](http://okhttp3okhttp:3.4.1/)'//...

2019-07-07 17:00:30 257

转载 Android状态check、focused、pressed、selected

在Android有些组件需要设置状态或判断状态,我们需要知道这些状态代表的意义。主要应用是在资源文件的使用。一.在资源文件中常见状态代表的意义(一)android:drawable这个属性是必须的,为当前控件指定资源。(二)android:state_pressed布尔值。true指当用户点击或者触摸该控件的状态。默认为false;一般用于设置按钮颜色/图片的设...

2019-04-19 11:46:26 764

原创 Android监听灭屏和亮屏

&lt;!-- 屏幕唤醒 --&gt;  &lt;uses-permission android:name="android.permission.WAKE_LOCK" /&gt;  &lt;!-- 屏幕熄灭 --&gt;  &lt;user-permission android:name="android.permission.DEVICE_POWER" /&gt;  今天希望应用程序...

2019-02-15 15:46:51 9129 1

转载 Android 压缩样式

今天写这个图片压缩,喜欢的就看一下。先介绍一下图片存在的几种形式:1.file文件 2.流的形式3.字符串(base64,便于加密)4.bitmap---内存的形式---------------------------------------------------------------------------------------------------------...

2019-02-14 09:12:33 171

转载 NumberProgressBar

Android UI Libs之NumberProgressBar1. 说明NumberProgressBar,顾名思义,数字进度条。该库实现了一个漂亮,简洁的数字进度条。2. 配置在模块的build.gradle上面添加依赖dependencies { compile 'com.daimajia.numberprogressbar:library:1.2@aar'...

2018-12-13 16:44:51 915

原创 各种tablayout

Demo  compile 'com.android.support:support-v4:23.1.1' compile 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar' 属性名称 格式 描述 tl_indicator_color 颜色 设置指示灯颜色 tl_indica...

2018-12-01 17:51:14 303

转载 Glide的各种处理方式

Glide 一个专注于平滑滚动的图片加载和缓存库在图片加载库烂大街的今天,选择一个适合自己使用的图片加载库已经成为了每一个Android开发者的必经之路。现在市面上知名的图片加载库有UIL,Picasso,Volley ImageLoader,Fresco以及我们今天的主角Glide。它们各有千秋,不能评定谁一定比谁好,只能说哪一个更适合你。我的理解下面我来谈一下个人对这些图片加载库的...

2018-11-05 00:19:34 5286 1

原创 摇一摇传感器

  private TextView name;private void initView() { name = (TextView) findViewById(R.id.name); } li = new ArrayList&lt;&gt;(); li.add("DDDDD"); li.add("WWWWW"); ...

2018-09-04 18:32:35 414

原创 扫描二维码,二维码的生成

 首先导入依赖implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support:support-v4:26.1.0' implementation 'com.yanzhenjie:permission:2.0.0-rc4' implementatio...

2018-09-03 15:27:18 237

转载 Android实现网络多线程断点续传下载

Android实现网络多线程断点续传下载本文续接我上一篇文章《Android实战:简易断点续传下载器实现》链接地址:http://www.jianshu.com/p/5b2e22c42467本项目Github地址:https://github.com/liaozhoubei/MultiDownload说到多线程下载,也许大家会觉得很迷惑,但多线程的原理实际上与单线程下载的原理并无区别...

2018-08-25 01:17:02 3077 2

转载 Android实现网络多线程断点续传下载

本示例介绍在Android平台下通过HTTP协议实现断点续传下载。 我们编写的是Andorid的HTTP协议多线程断点下载应用程序。直接使用单线程下载HTTP文件对我们来说是一件非常简单的事。那么,多线程断点需要什么功能?1.多线程下载,2.支持断点。 使用多线程的好处:使用多线程下载会提升文件下载的速度。那么多线程下载文件的过程是:   (1)首先获得下载文件的长度,然...

2018-08-25 01:08:05 129

原创 JAVA下实现多线程断点下载

JAVA下实现多线程断点下载多线程断点下载:顾名思义是用多线程实现的,断点是当第三方因素(断电、断网等)中断下载时,下次下载可以继续上次下载的地方下载。 1、通过getContentLength可以获取要下载文件的大小,这样可以在本机上创建一个相同大小的文件用来下载。int fileLength = connection.getContentLength();2、由于是多线程...

2018-08-25 00:46:01 161

原创 线程池的实现原理以及使用流程

线程池的实现原理提交一个任务到线程池中,线程池的处理流程如下:1、判断线程池里的核心线程是否都在执行任务,如果不是(核心线程空闲或者还有核心线程没有被创建)则创建一个新的工作线程来执行任务。如果核心线程都在执行任务,则进入下个流程。2、线程池判断工作队列是否已满,如果工作队列没有满,则将新提交的任务存储在这个工作队列里。如果工作队列满了,则进入下个流程。3、判断线程池里的线程是否都...

2018-08-25 00:24:38 9785

转载 MarqueeView可垂直跑、可水平跑的跑马灯

MarqueeView 俗名:可垂直跑、可水平跑的跑马灯学名:可垂直翻、可水平翻的翻页公告效果图Gradle:compile 'com.sunfusheng:marqueeview:&lt;latest-version&gt;'属性Attribute 属性 Description 描述 mvAnimDuration 一行文字动画执行时间 mv...

2018-08-17 20:09:00 1511

转载 lateinit 和 lazy 是 Kotlin 中的两种不同的延迟初始化的实现

lateinit 和 lazy 是 Kotlin 中的两种不同的延迟初始化的实现lateinit 只用于变量 var,而 lazy 只用于常量 vallazy 应用于单例模式(if-null-then-init-else-return),而且当且仅当变量被第一次调用的时候,委托方法才会执行。比如这样的常见操作,只获取,不赋值,并且多次使用的对象 private val ...

2018-08-16 19:17:07 1573

原创 支付宝支付流程图

1、了解下支付宝密钥处理体系: 大体结构图:详细结构图 订单号或支付宝交易号进行退款 , 支持全额和部分退款,其过程如下图所示:

2018-08-13 21:25:41 29083 1

原创 线程间的切换

方式1.利用Hanler,发送主线程消息 new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { } });方...

2018-08-13 19:33:21 1026

原创 提取WebView的图片

&lt;!-- 授予该程序使用摄像头的权限 --&gt; &lt;uses-permission android:name="android.permission.CAMERA" /&gt; &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt; &lt;use...

2018-08-11 20:26:03 708

原创 android7.0以上调用相机和相册

 在Fragment中使用时回传要放到嵌套Fragment的Activity里面 private static final int CODE_GALLERY_REQUEST = 0xa0; private static final int CODE_CAMERA_REQUEST = 0xa1; private static final int CODE_RESULT_...

2018-08-11 20:24:57 876

原创 支持POST的Retrofit缓存

//直播课程详情作业详情 @FormUrlEncoded @POST(LoginContant.ZBXQ_DETAIL) Call&lt;ZBXQBean&gt; getSZBXQ(@Field("id") Integer id);//用法 public ZBXQBean getData() { final ZBXQBean[] ...

2018-08-04 16:53:43 1010

原创 TextView的高级用法

 TextView一般都是用来显示一段文本,这里说的高级特性主要是一些我们平常不太常用的属性。包括文字阴影、自定义字体、html嵌入多格式、字体加粗、插入图片。这些特性平时开发APP的时候,可能一般使用不多,不过需要的时候却是很有用的特性。  之所以写这篇文章是因为今天修改Launcher里面界面字体的时候,遇到些问题,而Launcher的图标都是TextView做的,因此查找了一些Text...

2018-08-02 14:09:01 239

原创 ScrollView的使用

  有可能你不知道的那些ScrollView属性 •android:scrollbars设置滚动条显示。none(隐藏),horizontal(水平),vertical(垂直) •android:scrollbarStyle设置滚动条的风格和位置。设置值:insideOverlay、insideInset、outsideOverlay、outsideInset •android:s...

2018-07-30 10:56:44 7739

原创 Android广告图片轮播控件

常量常量名称 描述 所属方法 BannerConfig.NOT_INDICATOR 不显示指示器和标题 setBannerStyle BannerConfig.CIRCLE_INDICATOR 显示圆形指示器 setBannerStyle BannerConfig.NUM_INDICATOR 显示数字指示器 setBannerStyl...

2018-07-30 08:19:11 447 1

原创 Fragment 生命周期的详情

Fragment 生命周期的详情Fragment每个生命周期方法的意义、作用(注意红色的不是生命周期方法):setUserVisibleHint():设置Fragment可见或者不可见时会调用此方法。在该方法里面可以通过调用getUserVisibleHint()获得Fragment的状态是可见还是不可见的,如果可见则进行懒加载操作。onAttach():执行该方法时,Fragment与A...

2018-07-25 09:20:31 105

原创 RxJava2+Retrofit+缓存简单的使用

  所需的依赖implementation 'com.google.code.gson:gson:2.8.5'//不用可以不加 implementation 'com.android.support:design:26.1.0'//不用可以不加 implementation 'com.squareup.okhttp3:okhttp:3.10.0'//新版本//不用...

2018-07-20 20:58:25 617

原创 搜索框

具体使用该款SearchLayout使用非常简单,仅需2步:步骤1:导入控件库主要有 Gradle &amp; Maven 2种方式:方式1:Gradle引入依赖 build.Gradledependencies { compile 'com.carson_ho:SearchLayout:1.0.1'}方式2:Maven引入依赖 pom.xml&lt;dep...

2018-07-18 16:27:08 567

空空如也

空空如也

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

TA关注的人

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