![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
「已注销」
这个作者很懒,什么都没留下…
展开
-
android handler (2)
享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。private static Message sPool;private static int sPoolSize = 0;private static final int MAX_POOL_SIZE = 50;public static Message obtain() { synchronized (sPoolSync) { if (sPool != null) { Messag原创 2020-08-27 11:38:47 · 119 阅读 · 0 评论 -
android线程相关
线程cpu调度的最小单位进程进程是程序运行资源分配的最小单位并发和并行并行:同一时间能够执行不同任务,4核cpu有四个线程,并行数量就是4,如果超频,并行数量位8并发: 单位时间内能执行多少不同任务启动线程的方式1Thread thread = new Thread(){ @Override public void run() { }};thread.start();2Runnable runnable = new Runnable() {原创 2020-08-25 15:19:56 · 147 阅读 · 0 评论 -
android handler源码解析
handler通信是一个内存共享的方案Handlerpublic class Handler { public Handler(@Nullable Callback callback, boolean async) { // 拿到Looper里ThreadLocal储存的Looper对象 mLooper = Looper.myLooper(); } }public final class Looper { static f原创 2020-08-24 11:54:59 · 199 阅读 · 0 评论 -
Android Studio调试技巧
1、随时进入调试模式:菜单----Build---- Attach to Android Process2、条件断点右键断点,对断点添加条件,满足的时候才会进入断点3、日志断点:断点处右键,取消选中Suspend,勾选Log evaluated Expression,在输入框中输入要答应的内容即4、分析传入和传出的数据流:Menu----Analyze----Analyze D...原创 2019-09-22 12:09:18 · 178 阅读 · 0 评论 -
android aop方式动态权限
注解类:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface CheckPermission { String value(); int reqCode();}切点:@Aspectpublic class PermissionAspectj { p...原创 2018-10-10 10:10:19 · 333 阅读 · 0 评论 -
Android Room基本使用方法
添加依赖implementation "android.arch.persistence.room:runtime:1.1.1"annotationProcessor "android.arch.persistence.room:compiler:1.1.1"entity实体类@Entity(tableName = "bill")public class Bill {...原创 2018-08-12 21:32:05 · 738 阅读 · 0 评论 -
Android 触摸事件传递
事件传递的三个阶段分发(dispatchTouchEvent)返回true表示事件被当前视图消费掉了,不在分发;surper.dispatchTouchEvent表示继续分发该事件;viewGroup及其子类时会调用onInterceptTouchEvent来判断是否拦截该事件拦截(onInterceptTouchEvent)只存在 viewGroup及其子类返...原创 2018-08-12 10:49:12 · 209 阅读 · 0 评论 -
Android EditText相关
动态设置hint字体大小 // 动态设置hint字体大小 SpannableString spannableString = new SpannableString(getResources().getString(R.string.hint_withdraw_100)); AbsoluteSizeSpan absoluteSizeSpan = new Ab...原创 2018-08-12 10:44:21 · 156 阅读 · 0 评论 -
Android6.0 动态权限管理
Android6.0之后,官方将权限分为普通权限和危险权限,危险权限血需要动态设置#### 危险权限CAMERAREAD_CALENDAR、WRITE_CALENDARREAD_CONTACTS、WRITE_CONTACTS、GET_ACCOUNTSACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATIONREAD_AUDIOREAD_PHTONE_原创 2018-01-14 20:11:30 · 359 阅读 · 0 评论 -
设置tablayout tab
/** * 利用反射设置tablayout下划线 * * @param tabs * @param leftDip * @param rightDip */ public void setIndicator(TabLayout tabs, int leftDip, int rightDip) { Class<?> t原创 2017-09-19 21:33:19 · 482 阅读 · 0 评论 -
Android监听网络状态变化
监听网络状态变化android可以通过监听广播来监听网络状态的变化,在手机网络发生变化时,系统会发送一个广播。下面是实现步骤:1. 给清单文件添加权限<!-- 获取手机网络权限--><uses-permission android:name="android.permission.INTERNET" /><!-- 获取网络状态改变 --><uses-permission android原创 2017-04-22 15:22:13 · 479 阅读 · 0 评论 -
代码设置drawable padding
在代码中设置drawable padding的方法: Drawable drawable= getResources().getDrawable(R.drawable.drawable);tvTest.setCompoundDrawables(drawable,null,null,null); 这种设置方法是不会显示的。关键代码:drawable.setBounds(0, 0, drawab原创 2017-04-29 16:37:14 · 2597 阅读 · 0 评论