Android基础
佳朗
多读、多思、虚心、躬行
展开
-
一个简单的多功能自定义圆角ImageView
之前为了图方便和赶工期,所以直接使用早期的工具类去裁剪。后期的话有一些时间,所以做了一些优化,就自定义了一个圆角ImageView。其实大概思路都是清楚的,但是想看下网上有没有其他好的方便的,结果一查,跟我的思路基本一样,就是在onDrawable中做裁剪,但是代码一大推,也是醉了。后面看到一个挺有意思的思路,是通过clipPath实现的。使用裁剪的代码://RoundedBitmapDrawable是基于glide的public static Drawable bitmapToRound(Con.原创 2021-03-08 18:36:56 · 160 阅读 · 0 评论 -
android添加自定义的系统服务
前言其本质,还是通过binder方式进行通信。创建一个binder接口,可通过aidl方式创建接口的实现类,即为服务类添加服务到系统创建service管理类manage注册服务对应的manger,以供调用者使用配置修改SELinux权限。(在Enforcing强制模式下,无法使用)编译,需先make update-api步骤一个Map service的例子,只实现简单的set和get方法。PS:在操作的时候,有一个小技巧,就是查看现有熟悉的服务的写法,比如IAlarmManager原创 2020-07-29 09:49:16 · 3132 阅读 · 2 评论 -
Android.mk常用说明整理
LOCAL_PATH := $(call my-dir)必须定义。当前路径,即本Android.mk文件所处目录。每个Android.mk文件必须先定义 LOCAL_PATH 变量,此变量表示源文件在开发树中的位置。$(call my-dir)为编译系统Build System提供的宏函数,返回的就是当前目录路径。避免频繁定义,LOCAL_PATH不会被$(CLEAR_VARS)清理,所以...原创 2019-11-23 13:07:17 · 906 阅读 · 0 评论 -
volatile学习记录
volatile是java中关键词之一,作为一种轻量级同步机制,在多线程中经常会被使用。被volatile修饰的变量,具有可见性、有序性,不具备原子性。原子性:指不可中断的一个或一系列操作,即这些操作是不可被中断的,要么全部执行完,要么不执行,若只执行一部分,那么就不具备原子性。在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,比如:int x = 1; int ...原创 2019-04-16 14:24:39 · 110 阅读 · 0 评论 -
Retrofit原理浅析
Retrofit是一个网络加载框架,底层是基于OkHttp封装的,api接口定义和api接口使用解耦,并可以通过注解构建不同的请求方式和参数,还可以支持数据解析转换(gson)以及线程调度异步请求(RxJava)的优点。原创 2019-09-04 15:27:53 · 327 阅读 · 0 评论