
Android
羚羊独角
这个作者很懒,什么都没留下…
展开
-
App优化
体积优化:资源优化:简单图片自己画,.9图片的使用,把不常用的图片,经常变的图片放到服务端类优化:去掉不用的类,类库,尽量自己写类,不要有太多引用第三方的东西内存优化:避免内存泄漏,使用线程池,释放不用的资源速度优化:算法合理,减少没必要的类的初始化,做缓存...原创 2020-04-23 09:48:56 · 409 阅读 · 0 评论 -
Android焦点
ViewGroup中有一个mFocued成员来保存子视图中哪个子视图是具有焦点的视图,并且这样一直会递归下去。比如某个视图层次下的根视图ROOT下有A,B,C三个子视图,而B下面又有B1,B2,B3三个子视图,而这时候B3是具有焦点的子视图,那么在B中的mFocued保存的是B3,而ROOT下的mFocued保存的是B。ViewGroup没有焦点并不代表其子视图也没有焦点,这里没有父子制约关系。...原创 2020-03-27 10:58:22 · 248 阅读 · 0 评论 -
Handler机制
每个handler包含一个looper,looper是运行在当前线程的一个循环,每个线程通过ThreadLocal持有一个looper,looper包含一个queue,handler发送消息给queue,looper循环检索queue,如果有,叫交给handler处理...原创 2020-03-20 10:58:35 · 104 阅读 · 0 评论 -
ThreadLocal
ThreadLocal 是线程的局部变量, 是每一个线程所单独持有的,其他线程不能对其进行访问。当使用ThreadLocal维护变量的时候 为每一个使用该变量的线程提供一个独立的变量副本,即每个线程内部都会有一个该变量,这样同时多个线程访问该变量并不会彼此相互影响,因此他们使用的都是自己从内存中拷贝过来的变量的副本, 这样就不存在线程安全问题,也不会影响程序的执行性能。但是要注意,虽然Thre...原创 2020-03-20 10:49:22 · 91 阅读 · 0 评论 -
Android进程间通信的方式
一、使用 IntentActivity,Service,Receiver 都支持在 Intent 中传递 Bundle 数据,而 Bundle 实现了 Parcelable 接口,可以在不同的进程间进行传输。在一个进程中启动了另一个进程的 Activity,Service 和 Receiver ,可以在 Bundle 中附加要传递的数据通过 Intent 发送出去。二、使用文件共享Wind...原创 2020-03-20 10:09:28 · 229 阅读 · 0 评论 -
android 10新特性
面向开发者的 Android 10Android 10 围绕三个重要主题构建而成。首先,Android 10 以其先进的机器学习和对新兴设备(如可折叠设备和支持 5G 的手机)的支持走在移动创新领域的前沿。其次,Android 10 的主要关注点之一就是隐私权和安全性,其中近 50 项功能可为用户提供更好的保护、更高的透明度以及让用户更好地控制相关数据。最后,Android 10 可让用户更好地...原创 2019-11-14 14:44:48 · 469 阅读 · 0 评论 -
Android事件传递机制
@ Android事件传递机制原创 2019-04-25 13:42:06 · 168 阅读 · 0 评论 -
Android 常用权限和使用说明
日历读日历 android.permission.READ_CALENDAR 权限定义:1、android.permission.READ_CALENDAR:允许应用获取用户日历数据2、android.permission.WRITE_CALENDAR:允许应用编辑用户日历数据注:日历的读写操作,在日历应用中可以查看对应的日程。典型场景举例:1、制定学习计划、旅行日程;2、火车票预订...原创 2019-07-12 14:11:58 · 11106 阅读 · 0 评论 -
禁止NestedScrollView嵌套RecyclerView自动滑动到底部的问题
NestedScrollView第一次子布局添加这俩个属性android:focusable=“true”android:focusableInTouchMode=“true”原创 2019-07-24 15:08:52 · 2253 阅读 · 1 评论 -
android ANR
ANR全称:Application Not Responding,也就是应用程序无响应InputDispatching Timeout:5秒内无法响应屏幕触摸事件或键盘输入事件BroadcastQueue Timeout :在执行前台广播(BroadcastReceiver)的onReceive()函数时10秒没有处理完成,后台为60秒。Service Timeout :前台服务20秒内,后...原创 2019-07-26 10:09:47 · 149 阅读 · 0 评论 -
原生VideoView使用心得
1.MediaController样式单一,并且一直悬浮在phoneWindow上面,如果嵌套在scrollview中,不会随着滚动而滚动。2.activity执行stop会销毁VideoView因为 VideoView 继承了 SurfaceView , 在 Activity 的 onStop() 生命周期中会调用 surfaceDestroyed(), 此时会释放 MediaPlayer,...原创 2019-08-07 17:39:39 · 351 阅读 · 0 评论 -
ImageView scaleType属性
ImageView的scaleType的属性值有MATRIX,FIT_XY,FIT_START,FIT_END,FIT_CENTER,CENTER,CENTER_CROP,CENTER_INSIDE.1.android:scaleType=“center”保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size时,多出来的部分被截掉。2.android...原创 2019-08-15 14:36:08 · 119 阅读 · 0 评论 -
ListView,LinearLayout,RelativeLayout布局性能
ListView 判断给定的view的viewType指明是否可以回收回。viewType < 0是不可以回收。指定忽略的( ITEM_VIEW_TYPE_IGNORE = -1),或者是 HeaderView / (FootViewITEM_VIEW_TYPE_HEADER_OR_FOOTER = -2)是不被回收的。如有特殊需要可以将自己定义的viewTyp...原创 2019-08-13 11:37:21 · 284 阅读 · 0 评论 -
GridView的OnItemClickListener无响应解决
第一解决方案:将ItemView里面button换成textview第二解决方案:设置 ItemView clickable 为 FALSE;原创 2019-08-30 15:34:45 · 240 阅读 · 0 评论 -
android设置字体
android:fontFamily=“sans-serif-light”原创 2019-09-18 16:11:53 · 178 阅读 · 0 评论 -
CoordinatorLayout和Behavior
Android5.0提供了一个CoordinatorLayout布局,他能通过Behavior协调子布局之间的交互原创 2019-10-10 14:11:57 · 172 阅读 · 0 评论 -
android各版本新特性
android 新特性Android版本5.0 (api21)名字L默认情况下,在Android 5.0中,通知现在显示用户的锁定屏幕上,用户可以选择保护敏感信息不被公开,再次情况下,系统会自动删减通知显示的文本。要自定义此删减的通知,请使用setPublicVersion()。Context.bindService() 方法现在需要显式 Intent,如果提供隐式 intent,将引发异常...原创 2019-10-11 09:41:24 · 1392 阅读 · 0 评论 -
android常用权限
原创 2019-07-12 13:45:30 · 283 阅读 · 0 评论 -
Android 系统权限
首先要弄清楚几个方法activity.shouldShowRequestPermissionRationale(String permission)0、之前没有拒绝过此权限的申请(第一次安装后请求权限前调用):false1、曾经被拒绝过权限后再调用:true2、曾经被拒绝过权限且不再询问后再调用:falseactivity.checkSelfPermission(Manifest.per...原创 2019-06-26 14:51:47 · 285 阅读 · 0 评论 -
Retrofit解析
@Retrofit 解析解析的原因我想给Service的每个body加上基本参数,如platform,version等解析的收获我发现所有的service经过一个动态代理代理了所有方法,然后解析service方法的参数和返回值(获取参数的方式是通过反射方法的注解得到)。然后把参数作为okhttp的参数执行请求,请求回调中将结果解析成service方法的返回值,再通过rxjava的Obser...原创 2019-04-08 17:24:04 · 164 阅读 · 0 评论 -
Unable to resolve dependency for ':lib_common@debug/compileClasspath': Could not resolve com.android
Unable to resolve dependency for ‘:lib_common@debug/compileClasspath’: Could not resolve com.android.support:support-v4:28.+.工程什么都没改,报了一堆gradel错误,如上所示,解决办法,切换网络试试...原创 2019-03-27 10:55:49 · 546 阅读 · 0 评论 -
MVC MVP MVVM原理和区别
@ MVC MVP MVVM原理和区别MVCMVC全名是Model View Controller,如图,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控...原创 2019-03-22 14:02:28 · 632 阅读 · 0 评论 -
Android ListView中有倒计时
@ Android ListView中有倒计时如果ListView中有倒计时,那么倒计时一定要自定义View,如果使用notifyDataChangge()更新页面会很卡。下面我贴出我项目中的倒计时代码Java代码public class CountDownLL extends LinearLayout {private TextView hourTv, minTv, secondTv;...原创 2019-03-18 15:31:00 · 492 阅读 · 1 评论 -
Android 对多个EditText监听
@ Android 对多个EditText监听RxJava的掌握https://github.com/ReactiveX/RxJava/wiki/How-To-Use-RxJava上面是官网连接,RXJava一直在升级,今天讲解我已我项目中用的版本为准。gradle版本api ‘io.reactivex:rxjava:1.3.0’项目代码 telEt = contentView...原创 2019-03-18 15:06:55 · 758 阅读 · 0 评论 -
android面试题解答
@ android面试题解答1.Android的四大组件是哪些,它们的作用?Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事物,定义好需要接受的Inten...原创 2019-03-21 09:55:48 · 349 阅读 · 0 评论 -
银行卡号四位分割
@ 银行卡号四位分割public class BankFormatWatcher implements TextWatcher {private EditText currentEt;public BankFormatWatcher(EditText currentEt) { this.currentEt = currentEt;}@Overridepublic void ...原创 2019-03-15 11:02:20 · 2257 阅读 · 0 评论 -
Android屏幕适配
@Android终极适配屏幕适配采用dimens文件,给不同尺寸的手机生产不同的dimens文件,文件标准按宽度来,类似这样!在这里插入图片描述](https://img-blog.csdnimg.cn/20190314181707996.png)生产dimens公式是:public void getDimen() {float oneDimen = (1660f / 800f);f...原创 2019-03-14 18:24:00 · 96 阅读 · 0 评论 -
android动态权限
@android动态权限Android版本23以上添加了动态权限,也就是Android M(23)如何使用动态权限Activity和fragment都有权限申请的方法 activity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, reqCod...原创 2019-04-16 14:35:19 · 276 阅读 · 0 评论 -
android view 绘制流程
@view 绘制流程DecorView是一个应用窗口的根容器,它本质上是一个FrameLayout。DecorView有唯一一个子View,它是一个垂直LinearLayout,包含两个子元素,一个是TitleView(ActionBar的容器),另一个是ContentView(窗口内容的容器)。关于ContentView,它是一个FrameLayout(android.R.id.conten...原创 2019-04-23 10:29:58 · 137 阅读 · 0 评论 -
Can't toast on a thread that has not called Looper.prepare()
Dialog的Dismiss方法可以在主线程和子线程调用。Dialog和Toast的show,必须在主线程中调用原创 2019-06-13 14:43:15 · 344 阅读 · 0 评论 -
Android 本地身份证识别
https://github.com/fanbaoying/FBYIDCardRecognition-Android原创 2019-06-05 17:15:36 · 755 阅读 · 0 评论 -
如何发布类库到jcenter
1.注册bintray账号2.获取PbintrayKeyantelope001是我的bintray账号名,跟着箭头,最后输入密码就可以查看PbintrayKey,保存一会使用。3.在项目的根目录gradle文件中的dependencies节点中添加classpath ‘com.novoda:bintray-release:0.5.0’如果代码注释有中文,在根目录的gradle中还需...原创 2019-05-21 16:48:19 · 486 阅读 · 0 评论 -
retrofit自动转换成java对象和服务器异常处理
okhttp请求服务器返回的数据一般是json字符串,我们在哪个地方将字符串转成java对象合适呢retrofit提供了一个类MyGsonConverterFactory,我们需要重写这个类的一个方法 @Overridepublic Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] ...原创 2019-05-20 16:54:55 · 544 阅读 · 0 评论 -
身份证键盘
第一步在xml文件夹下创建idcard_keyboard.xml<?xml version="1.0" encoding="utf-8"?><Keyboard xmlns:android="http://schemas.android.com/apk/res/android"android:horizontalGap="2dp"android:verticalGap="...原创 2019-05-07 17:14:26 · 653 阅读 · 0 评论 -
Android阴影最完整解析
Android系统带的阴影elevationandroid:elevation="" 给控件添加一个浅灰色的阴影,控件必须设置背景android:background=""而且控件要设置layout_margin阴影才会显示出来。这个方式有个缺点,无法修改阴影颜色,无法设置阴影大小Android系统带的阴影shadowandroid:shadowColor="" 阴影颜色android...原创 2019-05-06 18:06:49 · 3597 阅读 · 0 评论 -
Android的uri
在Android中,为了使用数据集中管理模式,使用了ContentProvider来进行数据管理,在使用ContentProvider进行数据交互时就需要用到Uri。为了让客户端程序能够使用你的数据,你必须要定义一个公开的Uri,它由一些固定格式的文字组成,可以分成下面几个部分:...原创 2019-04-30 13:47:45 · 300 阅读 · 0 评论 -
Toast自定义
private void midToast(String str, int showTime){LayoutInflater inflater = getLayoutInflater();View view = inflater.inflate(R.layout.view_toast_custom,(ViewGroup) findViewById(R.id.lly_toast));Ima...原创 2019-04-30 13:37:59 · 117 阅读 · 0 评论 -
Android波浪
@Android技术点滴Android波浪正弦函数概念正弦曲线可表示为y=Asin(ωx+φ)+k,定义为函数y=Asin(ωx+φ)+k在直角坐标系上的图象,其中sin为正弦符号,x是直角坐标系x轴上的数值,y是在同一直角坐标系上函数对应的y值,k、ω和φ是常数(k、ω、φ∈R且ω≠0)。正弦曲线是一条波浪线。Android代码public class WaveView extend...原创 2019-03-14 17:40:31 · 250 阅读 · 1 评论