- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 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
210
原创 android线程相关
线程 cpu调度的最小单位 进程 进程是程序运行资源分配的最小单位 并发和并行 并行:同一时间能够执行不同任务,4核cpu有四个线程,并行数量就是4,如果超频,并行数量位8 并发: 单位时间内能执行多少不同任务 启动线程的方式 1 Thread thread = new Thread(){ @Override public void run() { } }; thread.start(); 2 Runnable runnable = new Runnable() {
2020-08-25 15:19:56
233
原创 android handler源码解析
handler通信是一个内存共享的方案 Handler public 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
283
原创 Android Studio调试技巧
1、随时进入调试模式: 菜单----Build---- Attach to Android Process 2、条件断点 右键断点,对断点添加条件,满足的时候才会进入断点 3、日志断点: 断点处右键,取消选中Suspend,勾选Log evaluated Expression,在输入框中输入要答应的内容即 4、分析传入和传出的数据流: Menu----Analyze----Analyze D...
2019-09-22 12:09:18
253
原创 android aop方式动态权限
注解类: @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface CheckPermission { String value(); int reqCode(); } 切点: @Aspect public class PermissionAspectj { p...
2018-10-10 10:10:19
436
原创 ios开发基础1
代码创建Label和Button - (void)viewDidLoad { [super viewDidLoad]; // label CGRect screen = [[UIScreen mainScreen]bounds]; CGFloat labelWidth = 90; CGFloat labelHeight = 50; CGFl...
2018-08-23 21:36:37
312
原创 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
914
原创 Android 触摸事件传递
事件传递的三个阶段 分发(dispatchTouchEvent) 返回true表示事件被当前视图消费掉了,不在分发; surper.dispatchTouchEvent表示继续分发该事件; viewGroup及其子类时会调用onInterceptTouchEvent来判断是否拦截该事件 拦截(onInterceptTouchEvent) 只存在 viewGroup及其子类 返...
2018-08-12 10:49:12
291
原创 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
233
原创 Android6.0 动态权限管理
Android6.0之后,官方将权限分为普通权限和危险权限,危险权限血需要动态设置 #### 危险权限 CAMERA READ_CALENDAR、WRITE_CALENDAR READ_CONTACTS、WRITE_CONTACTS、GET_ACCOUNTS ACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATION READ_AUDIO READ_PHTONE_
2018-01-14 20:11:30
435
原创 Android 点击穿透
对最上层视图控件添加点击事件: vNullData.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true;
2017-09-22 09:45:08
1912
原创 Android 调用系统相机拍照
/** * 调用系统相机 */ private void takePhoto() { Uri uri = null; if (which_image == FRONT_IMAGE) { frontFile = new File(getSDPath() +"/test/front_" + getDate() + ".j
2017-09-20 21:19:38
566
原创 设置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
586
原创 gson解析对象数组
gson 解析对象数组 public static <T> ArrayList<T> jsonToArrayList(String json, Class<T> clazz) { Type type = new TypeToken<ArrayList<JsonObject>>() { }.getType(); ArrayList<JsonObject>
2017-09-18 21:58:39
2424
原创 代码设置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
2775
原创 Android监听网络状态变化
监听网络状态变化android可以通过监听广播来监听网络状态的变化,在手机网络发生变化时,系统会发送一个广播。下面是实现步骤: 1. 给清单文件添加权限<!-- 获取手机网络权限--> <uses-permission android:name="android.permission.INTERNET" /> <!-- 获取网络状态改变 --> <uses-permission android
2017-04-22 15:22:13
632
原创 android实现开机自启动
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-04-15 15:44:55
471
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅