自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (1)
  • 收藏
  • 关注

原创 Perfetto 使用 笔记

Perfetto抓取导出命令,分析思路,代码添加trace。

2024-01-10 14:02:24 566

原创 Android Overlay机制总结

Android Overlay机制 动态加载资源

2022-07-22 14:38:46 2662 4

原创 Android 可滑动ViewGroup

可拖动的viewgroup

2022-07-19 15:35:17 448

原创 Android 可滑动的ProgressBar

可滑动的progressbar

2022-07-19 14:56:00 822

原创 BannerView Android 只一个方向

居中 LAYOUT_MODE_CENTER顶部 LAYOUT_MODE_TOP底部 LAYOUT_MODE_BOTTOM右往左布局 LAYOUT_RIGHT_TO_LEFT

2022-02-18 14:31:20 1322

原创 Ubuntu 无法连接设备 no permissions (verify udev rules)

lsusb通过 lsusb 查看usb设备信息Bus 001 Device 006: ID 0e8d:201c MediaTek Inc. Honor10记录一下ID 信息接着 在目录/etc/udev/rules.d/下添加文件70-android.rules,并编辑SUBSYSTEM=="usb", ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="201c",MODE="0666"...

2021-11-30 15:09:01 367

原创 AOSP 同步时提示 不能重置索引文件,‘command.py‘ not uptodate. Cannot merge.

cd .repo/repo然后 git pull 更新最新数据

2021-11-30 14:41:37 625

原创 AOSP 同步 时提示/usr/bin/python 不存在

先看下是否安装了 Pythonls -l | grep python建立软连接sudo ln -s python3 python-s 源文件 目标文件不同源码需要的python版本不同

2021-11-30 14:36:47 877

原创 Ubuntu 修改只读文件

chmod 777 test.txt如果不行,执行 sudo su 之后再执行上面的

2021-11-30 14:25:20 3703

原创 Android JetPack——DataBinding

DataBinding的作用是直接让实体类的和布局中控件绑定,不需要代码中设置,只需给布局设置对象即可。DataBinding支持android { compileSdkVersion 28 defaultConfig { applicationId "com.example.study" minSdkVersion 22 t...

2019-07-12 13:57:24 222

原创 Android JetPack——LiveData

项目地址:项目地址包含之前的内容public abstract class LiveData<T> {}虽然是一个抽象类,但是它并没有抽象方法。根据文档介绍:LiveData是一个给定生命周期内的数据持有类。就需要一个观察者和生命周期拥有者进行关联,这样当数据变化的时候就能通知观察者了。生命周期拥有者,LifecycleOwner一个生命周期观察者,LifecycleOb...

2019-07-12 11:57:19 131

原创 Android JetPack——Lifecycle

public abstract class Lifecycle {}根据文档的注释,这个类可以帮助我们创建一个拥有Android生命周期的对象。比如Fragment和Activity。需要做到三点:生命周期拥有者,如Fragment、Activity、dialog、Service等,或者自己创建一个具有一定生命周期的class。生命周期的观察者,如请求数据的接口、动画等,或者自己创建一...

2019-07-12 10:53:54 290

原创 Android 自定义View——自定义一个文本选择框

这种效果也算是比较常用的选择方式了。View的绘制流程自定义View代码示例View的绘制流程//DecorView将会调用07-10 11:33:18.657 23998-23998/com.example.study E/CustomFrameLayout: requestLayout07-10 11:33:18.657 23998-23998/com.example.stu...

2019-07-10 12:25:53 561

原创 android View——事件分发

介绍示例源码浅析对于Android中的事件,最常见到的就是点击事件。那么点击在屏幕上,最终怎么响应在设置的控件上的呢?三个重要的方法了解这些需要先知道三个方法dispatchTouchEvent此方法View和ViewGroup中都有。public boolean dispatchTouchEvent (MotionEvent event)将触摸屏运动事件传递给目标视图...

2019-07-09 10:31:28 175

原创 Android BitmapRegionDecoder——大图、长图展示

-. 类介绍-. 示例项目地址:项目地址包含之前的内容类介绍作用public final class BitmapRegionDecoder { private BitmapRegionDecoder(long decoder) { ... }}BitmapRegionDecoder 类被final进行修饰,因此无法被继承。构造方法被私有化,无法直接n...

2019-07-04 16:54:46 1634

原创 Android Bitmap——基本使用及压缩、颜色质量、bitmap内存空间复用

实例化对象Bitmap对象大小和像素大小BitmapFactory.Options如何实例化对象Bitmap文档Bitmap提供了一系列的createXX方法,可以通过:Bitmap、DisplayMetrics、Picture、RGB的颜色数组等得到一个Bitmap对象。BitmapFactory提供了一系列的decodeXX方法。流行、文件、资源等得到一个Bitmap对象。...

2019-07-01 16:07:13 1056

原创 Android IntentService

类介绍使用示例源码浅析总结类介绍public abstract class IntentService extends Service { ... protected abstract void onHandleIntent(@Nullable Intent intent); ...}首先IntentService是一个继承自Service的抽象类,一个抽象方法onHan...

2019-06-28 17:30:49 130

原创 Android HeadlerThread

HandlerThread 类功能介绍示例源码浅析总结HandlerThread 类功能介绍/** * Handy class for starting a new thread that has a looper. The looper can then be * used to create handler classes. Note that start() must s...

2019-06-28 15:24:34 481

原创 Android AsyncTask

AsyncTask 支持正确、方便使用UI线程。不必去操作线程或者Handler,就可以把线程任务的结果返回到UI线程中来。抽象类AsyncTaskpublic abstract class AsyncTask<Params, Progress, Result> {... @WorkerThread protected abstract Result doInBack...

2019-06-27 17:39:01 112

原创 Android ContentProvider

ContentProvider,Android四大组件之一。可以实现进程间数据共享。有3个辅助类ContentUris类,用来在Uri后追加id、获取id。UriMatcher类 ,用来注册ContentProvider的Uri,根据提供的Uri匹配ContentProvider中对应的表。ContentObserver,内容观察者,指定Uri的ContentProvider的内容发...

2019-06-25 14:50:47 98

原创 Android Service--AIDL

上个文章介绍了IBinder和Messenger的使用。而且也说了,Messenger底层也是使用了AIDL。下面笔记一下AIDL。AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言。相信这个解释,可以在很多文章中看到。所以也就知道为啥不在家.java文件,而是.aidl格式的文件。其中语法呢,大家可以去了解一下...

2019-06-24 09:52:27 199

原创 Android Service--通信方式(IBinder回调、Messenger)

Activity与Service的通信,分两大类,同一个进程中、不同的进程中。同一个进程中可以通过直接实现IBinder接口,或者继承Binder类。Binder类是系统提供的一个IBinder接口的实现类。Service中: public class MyBind extends Binder { public MyService getService() { ...

2019-06-21 09:34:24 2526

原创 Android Service--启动方式

首先作为四大组件,使用的时候别忘了在清单文件中注册。生命周期startServiceattachBaseContext–onCreate–onStartCommandstopServiceonDestroybindServiceattachBaseContext–onCreate–onBind并且ServiceConnection回调onServiceConnected。u...

2019-06-20 14:08:52 388

原创 Acitivity启动模式——launchMode

standard标准模式也是默认的启动模式,每次start,都会走onCreate方法重建。singleTop栈顶模式,start的时候,如果activity不在栈顶,会调用onCreate方法重建,如果在栈顶存在就会走onNewIntent方法,不会重建。singleTask单任务模式,start的时候会走onNewIntent方法,不会重建。而且会把在它之上的activity退出栈...

2019-06-18 16:47:46 125

翻译 Android技能树—— 性能优化(一)

常见的性能问题内存泄露Android 内存分配的方式OOM(内存溢出)大Bitmap、列表Bitmap等。耗电问题定位、动画。内存抖动频繁GC造成性能问题常见的原因在UI线程中进行了耗时操作,导致UI线程卡顿。UI布局过于复杂,无法在16ms内完成渲染。View过渡绘制,不必要的区域,多次渲染,导致GPU或者CPU负载过重。频繁的GC导致UI线程卡顿。设置子线程的...

2019-06-13 14:31:16 195

原创 7.0手机打开相机或相册报错解决方案,记录。

在android 7.0以上的手机上打开相机、相册会报如下错误:android.os.FileUriExposedException: ** exposed beyond app through Intent.getData()原因在Android7.0系统上, 如果一项包含文件 file:// URI类型 的 Intent 离开你的应用,应用失败,并出现 FileUriExposedExc...

2018-10-26 16:24:04 555

原创 Android TextView、EditText显示输入法自带表情,记录一下

参考文章写在首位Android emoji显示嘿嘿,其实代码都没有变。在Android系统中使用系统自带的emoji表情这篇文章里介绍,emoji表情实际上是一组Unicode编码与一组表情描述之间的一一对应。,至于对应什么图片,就看不同系统怎么设定了。TextView和EditText本身就已经支持表情了,只不过将emoji发给后台,后台再发回来会出现问题。布局&lt;?xml ...

2018-10-09 17:19:46 2371 4

原创 Android CoordinatorLayout自定义Behavior笔记

参考放在首位Behavior参考博客Behavior参考博客Behavior抽象类 public abstract static class Behavior&amp;amp;amp;lt;V extends View&amp;amp;amp;gt; { public Behavior() { } public Behavior(Context context, AttributeSet...

2018-10-09 09:09:18 1354

原创 C语言 基本数据类型

在我们玩游戏的时候,游戏中的角色是有类型的,有敏捷型、力量型、法术型等等。同样C语言中的数据也是有类型的,C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。如图所示: 这里我们先给大家讲解基本数据类型中最简单也是最常用的整型、实型与字符型。 整型数据是指不带小数的数字。生活中有很多信息适合使用整型数据来表示,比如:人的年龄、班级的人数、书的总页数等等。因此整型的

2017-07-20 15:05:31 649

原创 C语言基础 标识符

有名有姓的C编程时给变量或者函数起的名字就是标识符,就好比我们慕课网的每一位童鞋都有姓名,姓名就是这位童鞋的标识符。C语言的标识符是不可以随便起名字的,必须遵守一定的规则。C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线。在使用标识符时还有注意以下几点:(1)标识符的长度最好不要超过8位,因为在某些版本的C中规定标识符前8位有效

2017-07-14 14:06:42 754

原创 C 语言基础 注释

注释是为了使别人能看懂你写的程序,也为了使你在若干年后还能看得懂你曾经写的程序而设定的。注释是写给程序员看的,不是写给电脑看的。所以注释的内容,C语言编译器在编译时会被自动忽略。C语言注释方法有两种: 多行注释: /* 注释内容 */ 单行注释: //注释一行#include <stdio.h>int main(){ //这是一首思念家乡的诗 printf("床前

2017-07-14 13:57:33 564

原创 java设计模式 装饰模式 魔域战力系统

装饰者模式:若要扩展功能,装饰者提供了比集成更有弹性的替代方案,动态地将责任附加到对象上。 先简单描述下装饰者模式发挥作用的地方,当我们设计好了一个类,我们需要给这个类添加一些辅助的功能,并且不希望改变这个类的代码,这时候就是装饰者模式大展雄威的时候了。这里还体现了一个原则:类应该对扩展开放,对修改关闭。 现在的需求: 魔法师:法师帽,法师帽可以镶嵌魔魂晶石和灵魂晶石等。 定义装备的接口:p

2017-06-23 11:59:30 368

原创 java 设计模式 观察者模式 新闻消息推送

观察者模式,字面意思有个观察者,那么就应该有一个被观察者。两个定义: 观察者:Observer (比如新闻客户端,你自己的微信号) 被观察者:Observable(新闻推送端,你关注的微信公众号) 1.观察者可以同时订阅多个被观察者。 2.被观察者可以同时被多个观察者订阅。 3.被观察者发生改变时会影响到所有的观察者。 对于每个用户都存在这三条线路。 Java中已经帮我们实现了观察

2017-06-22 15:20:07 2406

原创 java 设计模式 策略模式 以英雄联盟为背景

继续java设计模式学习之旅, 策略模式(Strategy Pattern):定义了算法族,分别封装起来,让它们之间可相互替换,此模式让算法的变化独立于使用算法的客户。 可能看完之后还是很迷糊,但是有一个印象,方便阅读下面代码时候的思路理解。(本人是一名android讲师,这个也是很多学员喜欢犯的错误,不愿意看定义理论介绍,这样理解和统一思路就很难了) 话不多说,开始我们的游戏: 游戏设定角

2017-06-21 17:01:27 838

原创 java设计模式 单例模式

这个模式大家应该都用过,目的就是保证类的对象的唯一性,那么在实现的过程中呢,有多种方法。饿汉式,类加载就创建 这个也是写起来最方便的package bean;public class SingleBean { //实例化私有对象 private static SingleBean singleBean=new SingleBean(); //封装构造方法避免其它类直接ne

2017-06-21 15:26:01 227

原创 java 类型通配符 ?

如果对上篇文章的泛型有所了解后,还需要了解下类型通配符,在java中类型通配符是? 可以将一个类型通配符?,作为类型实参,传递给一个泛型类或者泛型接口。如:Listpublic class Test { public static void main(String[] args) { List<Integer> list=new ArrayList<>(); l

2017-06-14 18:04:50 669

原创 java 深入理解泛型

泛型相信很多人都遇到过,比如使用集合的时候类似List,封装适配器的时候。泛型在处理数据的时候可以帮助我们,只处理指定类型的数据,比如集合无论我们存什么样的数据,取出的时候都会被认为是Object的对象,一般都需要我们去强转为想要的数据类型,这个时候可能会出现类型转换错误。比如:List list=new ArrayList<>(); list.add("你好");

2017-06-14 15:46:11 478

原创 Java Enum 枚举详解

在某些情况下,一个类的对象是有限而固定的。比如季节类,它只有4个属性。像这种实例有限且固定的类,被称为枚举类。没错,它仍然是一个类,具有类所有的特性。 下面就开始创建一个枚举类吧:**无法创建枚举文件的问题**new>Enum 哎呀,结果发现创建的时候无法创建(如果你用的是eclipse),如下图: 这是因为Eclipse可以指定编译深度,默认值为1.4,而枚举是在jdk1.5之后出现

2017-06-13 17:28:59 950

翻译 Kotlin入门语法

Kotlin的基础语法,开始学习Kotlin,可以类比Java语言,但不能被Java的思维模式固定。1. 导包和java一样,导包都是在文件的顶部package my.demoimport java.util.*2.定义功能函数带Int类型返回值的函数fun sum(a: Int, b: Int): Int { return a + b}执行结果:调用

2017-06-13 13:42:39 358

原创 Android壁纸之静态壁纸

上篇文章写了有关动态设置壁纸的介绍,也就是WallPagerService的使用今天来介绍一下超级简单的设置静态设置壁纸的方法,代码如下 WallpaperManager wallpaperManager=WallpaperManager.getInstance(MainActivity.this); try { wallpa

2017-06-06 14:20:44 1793

Kotlin(中文版)学习pdf版

Kotlin学习手册中文版,文件格式为pdf版

2017-05-26

空空如也

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

TA关注的人

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