自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Gradle may disable incremental compilation as the following annotation processors are not ......

导入一个已有工程时build失败,gradle task':app:compileDebugJavaWithJavac' failed,报错如下:> Task :app:compileDebugJavaWithJavac FAILEDGradle may disable incremental compilation as the following annotation processors are not incremental: databinding-compiler-3.4.0.ja.

2021-03-16 19:59:10 8067

原创 1个多线程导致的crash问题

crash报错如下:08-13 23:47:39.701 9026 9026 E AndroidRuntime: FATAL EXCEPTION: main08-13 23:47:39.701 9026 9026 E AndroidRuntime: Process: com.android.systemui, PID: 902608-13 23:47:39.701 9026 9...

2020-11-30 09:21:39 838

原创 implicit conversion increases floating-point precision: ‘float‘ to ‘double‘ [-Werror,-Wdouble-promot

frameworks/native/libs/gui/SurfaceComposerClient.cpp:345:57: error: implicit conversion increases floating-point precision: 'float' to 'double' [-Werror,-Wdouble-promotion] ALOGE("client setMatrix, %.2f, %.2f, %.2f, %.2f,", (dsdx), (dtdx), (dtdy), (...

2020-11-17 15:14:06 3739

原创 记一次selinux权限添加

selinux权限的原理之前有看过,一知半解,基本也没有修改过相关代码, 这两天一次需求开发中临时需要添加一个selinux权限,大概咨询了下同事,自己搞了一下,居然一次成功了,记录下。需求开发需要在system_server进程中调用SystemProperties.set("vendor.mtk.xxx")设置一个vendor.mtk开头的属性,不适配selinux权限的话会报错导致开不了机。添加selinux权限的步骤:1. 查看设备根目录的vendor_property_context.

2020-11-09 19:26:37 3170

转载 systrace打印

转载至https://blog.csdn.net/wtbee/article/details/97929078, 亲测有效,补充2点:systrace.py脚本可以在windows命令窗口执行,也可以在ubuntu等linux系统执行;并不一定如本文转载所说的在systrace.py所在目录打开Powershell窗口才可以; pip install pywin32后,我这边执行systrace.py脚本,提示还需要安装six模块,继续pip install six即可。另外记录下本人常用的syst

2020-11-09 15:17:18 443

原创 vi格式化代码

vi 打开代码文件后,可以格式化全部代码,也可以格式化部分代码。一. 格式化全部代码输入gg, 光标移到文件头部; 输入=; 输入G(shitf+g),整个文件就格式化了。二. 格式化部分代码光标移到要格式化的第1行代码,输入shitf + v,进入可视化模式; 按j,选中要格式化的所有代码; 输入=,选中的代码就被格式化了。...

2020-11-09 09:52:27 1008

原创 Android设备GLES版本查询

如果不在代码中使用,只是想知道你手头Android设备所使用的GLES的版本,可以用如下1)和2)中的个方法:1) getprop ro.opengles.version在ActivityManagerService中有一个final成员变量GL_ES_VERSION, 它是在ActivityManagerService的构造函数中被赋值的:public class ActivityManagerService extends IActivityManager.Stub imp

2020-10-22 01:00:51 4722

转载 深入理解Java Lambda表达式

转载于深入理解Java Lambda表达式什么是Lambda表达式?可以将Lambda表达式理解为一个匿名函数; Lambda表达式允许将一个函数作为另外一个函数的参数; 我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码作为实参),也可以理解为函数式编程,将一个函数作为参数进行传递。为什么要引入Lambda表达式?这就好像小强看到小明的手里拿了一把玩具手枪,自己也想拥有一把一样。当java程序员看到其他语言的程序员(如JS,Python)在使用闭包或者Lambda表达式的.

2020-10-10 21:58:17 252

转载 全网最通透的Java8版本特性讲解

转载于全网最通透的Java8版本特性讲解,写得非常好!!!目录特性总览 一. 接口默认方法和静态方法 接口默认方法 解决默认方法冲突 接口静态方法 二. Lambda 表达式 什么是 Lambda 表达式 Lambda 表达式的作用 三. 函数式接口 1 - Comparator(比较器接口) 2 - Consumer(消费型接口) 3 - Supplier(供应型接口) 4 - Predicate(断言型接口) 5 - Function(功能型接口)

2020-10-10 21:26:29 299

原创 Android Studio在代码编辑区下方显示光标所在类名和方法名

源码阅读时,跟随光标当前位置显示其所在的类名和方法名是很方便的,使用如下2种方式之一打开"Show Breadcrumbs"即可。一. 菜单View->Active Editor,选中Show Breadcrumbs,即时生效。二. 在Settings中设置,也是即时生效的。 菜单File->Settings...,找到子目录Editor->General->Breakcrumbs,勾选Show breadcrumbs。...

2020-09-24 00:16:53 2522 5

原创 native调用栈分析

1. addr2line命令addr2line -h 可以查看命令使用帮助:一般命令使用方式:addr2line -e 可执行程序文件 -f -C address比如下面一个调用栈打印,这是在surfaceflinger模块的启动入口:main_surfaceflinger.cpp的main方法中打印的:01-01 08:00:08.030 2981 2981 D surfaceflinger start: #00 pc 00002875 /system/bin/surfac..

2020-09-16 17:24:24 679

原创 源码环境下打印native调用栈

比如在frameworks/native/services/surfaceflinger/Layer.cpp中,想在其中某个方法中加调用栈打印,可以按如下步骤操作:1) 在surfaceflinger模块的Android.bp文件中添加对libutilscallstack库的引用:cc_defaults { name: "surfaceflinger_defaults", ......}cc_defaults { name: "libsurfaceflinger_de

2020-09-12 11:21:44 318

原创 java.lang.UnsupportOperationException: Binary XML file line #0: You must supply a layout_height

在Android9上进行分屏调试时,某些应用强制进入分屏会报如下crash问题:问题原因是布局文件中引用到的某些尺寸资源值,在values\dimens.xml目录下没有,而只在一些固定屏幕尺寸,如values-1920x1080\dimens.xml目录下存在,分屏后,应用窗口尺寸配置有变化,默认目录下又没有默认配置,所以就找不到layout_height对应的尺寸资源。解决方法:在应用的默认资源目录values中增加相应配置就可以。...

2020-06-05 19:21:03 460

原创 Android9.0 mm编译失败:ninja: error: 'xxx', needed by 'xxx', missing and no known rule to make it

Android系统源码环境下使用mm命令单独编译某一个模块,如果该模块依赖其它模块,可能会报如下错误:解决此问题的方法就是改成mma命令编译,mma命令会构建所需要的关联模块。编译命令简单总结:mm:编译当前目录下的模块,当前目录下要有Android.mk/Android.bp文件,不构建依赖mmm:编译指定路径下的模块,指定路径下要有Android.mk/Android.bp文件,不构建依赖mma:编译当前目录下的模块,构建依赖mmma:编译指定路径下的模块,构建依赖..

2020-05-14 09:20:39 9348 2

原创 Android源码中的@docRoot

阅读Android源码时,有时会看到类似如下所示的超链接地址,其中的@docRoot是https://developer.android.google.cn/,在此根地址后复制后面的具体内容地址,可以查看具体的文档。 /** Constant for {@link #screenLayout}: a {@link #SCREENLAYOUT_LONG_MASK} * va...

2020-05-08 17:16:40 374

转载 Android中获取文本宽度和高度

本文罗列Android中字体宽度和高度的相关概念,及测量方法 。原文请参考Android_FontMetrics、Android字符串进阶之三:字体属性及测量(FontMetrics)、 Android UI 之居中绘制文本内容的正确方法——实现自定义一个TextView。我们在自定义一个控件的时候,有时候会需要自己来绘制一些文本内容,这样就自然而然遇到确定文本的宽高尺寸和方位的问题,事实上明确了...

2018-02-11 22:48:43 6816

原创 android基础--JNI基础:C/C++语言

JNI简介什么是JNIJNI(Java Native Interface) java本地开发接口JNI 是一个协议, 有了这个协议可以使Java代码和C/C++代码相互调用.--C语言调用java是使用反射技术,C反射java.为什么用JNI* JNI扩展了java虚拟机的能力, 如wifi热点共享功能, wifi需要使用到硬件,而硬件需要驱动程序, 只有c语言可以开发驱动程序    游戏外挂...

2018-02-11 22:46:44 300

转载 Android渐变色,文本过长字符串渐变效果

本文首先介绍Android渐变色的基础理论知识,然后自定义一个TextView实现文本过长时字符串颜色渐变效果一、LinearGradient线性渐变在android平台中提供了两种重载方式来实例化该类分别为,他们的不同之处为参数中第一种方法可以用颜色数组,和位置来实现更细腻的过渡效果,比如颜色采样int[] colors数组中存放20种颜色,则渐变将会逐一处理。而第二种方法参数仅为起初颜色col...

2018-02-11 22:45:56 516

转载 几个Android常见wraning警告处理方法

写Android项目时应力求项目中没有warning警告,本文罗列几个常见的Android warning警告信息及可用的解决方法。1.  replace "-" with an "en dash" character (–, –)     解决方法:直接将“-”符号替换为“–”  (不含双引号)。2.  This Handler class should ...

2018-02-11 22:45:29 3717

转载 Android属性动画 Property animation

转载于:http://www.open-open.com/lib/view/open1329994048671.htmlhttp://blog.sina.com.cn/s/blog_5da93c8f0102uxio.htmlhttp://blog.sina.com.cn/s/blog_b991f82a0101gqa3.html3.0以前,android支持两种动画模式,tween animatio...

2018-02-11 22:43:57 224

转载 android之android.intent.category.DEFAULT的用途和使用

原文:http://blog.csdn.net/jason0539/article/details/100498991. 要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent。    Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码:Intent intent= new Intent(t...

2018-02-11 22:42:59 965

原创 Android View 事件处理

从View的dispatchTouchEvent可以看出,事件最终的处理无非是交给TouchListener的onTouch方法或者是交由onTouchEvent处理,由于onTouch默认是空实现,由程序员来编写逻辑,那么我们来看看onTouchEvent事件。首先我们来看一个比较简单的onTouchEvent的处理,那就是View,我们知道,View只能响应click和longclick,不具...

2018-02-11 22:42:19 373

原创 Android ava.lang.IllegalStateException: Cannot perform this operation because the connection pool ha

Android开发中遇到如下异常:07-06 16:54:03.480: E/MtaSDK(24653): java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.07-06 16:54:03.480: E/MtaSDK(24653): ...

2018-02-11 22:39:43 1358

原创 java排序算法

本文罗列java中的各种排序算法思想和编程实现。java排序算法常用的有:快速排序、冒泡排序、选择排序、插入排序、堆排序、希尔排序、合并排序。1. 快速排序/* * 快速排序思想:采用经典的分治思想 * 1、通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小 * 2、然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以

2014-07-25 11:27:48 530

原创 几道有意思的java编程题目

1. Object数组中元素自动分类/* * Object[]数组中元素自动分类,将如下objs数组中各个元素按其本身的类型存储到具体类型的数组中 * Object objs[] = { 45, "king", 56.45, "rose", 45.4f, true, 'A', false,"Jack", 56, 0.0, 0.012f, 'B', true, 'C' }; */publ

2014-07-12 10:54:19 690

原创 笔试题

1、 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。package com.itheima;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.TreeMap;public class Te

2014-06-19 13:55:06 2326

原创 java类加载器和动态代理

本文是对java高新技术-类加载器及动态代理技术的学习总结。这部分内容以前基本没接触过,总结中尽量将涉及的所有知识描述清楚,并记录张老师所讲的代码示例。

2014-05-31 09:26:00 948

原创 java反射和内省

本文学习并总结java反射和内省技术,这2部分知识个人感觉可以算是java的高深内容了,反射是用来做框架的,内省是用来操作javaBean对象的,这2部分知识有相似之处,不可或缺。

2014-05-31 08:34:23 1180

原创 java 枚举

java中的枚举是什么形式的?怎样编写一个枚举类?这些在本文中给出解答。枚举就是让某个类型的变量取值只能为某个若干个固定值中的一个,否则编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值。

2014-05-31 07:45:28 712

原创 java 正则表达式

本文学习并总结java中正则表达式语法及其具体功能。使用正则表达式可以非常方便灵活地操作字符串,在实际项目开发中也很实用。正则表达式符合一定规则的表达式。

2014-05-30 22:31:39 698

原创 java Socket网络编程

本文学习并总结java Socket网络程序。目前学习的是网络模型中的网络层和传输层在java中的体现和使用,后续学习java Web开发时就是在应用层编程了。本文先描述了网络通讯3要素及其在java中的封装,后面重点讲述java UDP DatagramSocket编程和TCP Socket/ServerSocket编程,关于UDP编程,本文给出了一个自己编写的1对1聊天程序(带图形化界面)。

2014-05-30 09:03:03 1407

原创 java IO流(下)

上一篇文章中总结了java IO流基本流对象操作方法及典型应用示例,本文学习并总结IO包中的其它常用重要对象,这些对象对完整及更加灵活地使用和操作IO流是必不可少的。这些流对象种类较多,不像上一篇中只有字符流、字节流及各自的缓冲区流对象等,学习时可以根据其名称记住这些流对象各自的特点和主要方法,实际项目使用时可以再查阅API手册。

2014-05-29 22:28:48 703

原创 java IO流(上)

本文总结java IO流对象的学习,java中IO流对象种类繁多,很容易搞混不知道该用哪一个,所以这里总结学习时,将每种流对象的构造方法和读写方法都记录在此,以方便查阅,加强记忆。

2014-05-28 14:04:08 981

原创 java集合(下)_Map集合

前面文章中总结了java Collection单列集合知识,本文接着描述java中的双列集合-Map集合,及java集合框架的2个常用工具类-Collections和Arrays。

2014-05-28 08:48:42 7294

原创 java泛型

本文总结java中泛型概念及其用法。java泛型技术在集合框架中应用广泛,学习及总结时梳理了主要内容进行描述,一些零散的泛型使用注意事项体现在代码。

2014-05-28 08:25:58 700

原创 java集合(上)_Collection集合

本文总结java单列集合,单列集合顶层接口是Collection。刚接触java集合时知道java集合可以装载任意类型的对象,是一种功能强大的容器,逐渐学习后发现java集合框架层次明确,每个容器都有自己的特殊用途,学习时要掌握并理清集合的共性方法和每种容器的特殊方法。

2014-05-28 08:15:33 1080

原创 java多线程与线程间通信

本文学习并总结java多线程与线程间通信的原理和方法,内容涉及java线程的众多常见重要知识点,学习后会对java多线程概念及线程间通信方式有直观清晰的了解和掌握,可以编写并分析简单的多线程程序。

2014-04-20 18:56:38 1523 1

原创 java 字符串,字符串缓冲区

本文学习并总结java中的字符串。内容包括String字符串常用方法、StringBuffered和StringBuilder功能介绍,学习中练习了论坛中的一些提问问题,同时也对所学知识进行了验证巩固。

2014-04-20 15:38:58 3001

原创 java异常和异常处理

本文讲述java异常和异常处理方式。学习了java异常后,个人感觉最大惊喜是平时工作中经常遇到的log日志文件里打印的类似"SocketException, at java.xx.xx....",可以自己进行简单分析与定位了。

2014-04-15 00:21:17 684

原创 java内部类

本文讲述java内部类的学习与总结,java内部类有普通成员内部类、局部内部类和匿名内部类,本文分别描述其特性和使用方法。在实际项目开发中使用内部类是java编程技术深入的一种体现。

2014-04-14 00:56:56 629

空空如也

空空如也

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

TA关注的人

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