- 博客(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
152
原创 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
181
原创 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
230
原创 Android Studio调试技巧
1、随时进入调试模式:菜单----Build---- Attach to Android Process2、条件断点右键断点,对断点添加条件,满足的时候才会进入断点3、日志断点:断点处右键,取消选中Suspend,勾选Log evaluated Expression,在输入框中输入要答应的内容即4、分析传入和传出的数据流:Menu----Analyze----Analyze D...
2019-09-22 12:09:18
212
原创 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
370
原创 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
252
原创 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
797
原创 Android 触摸事件传递
事件传递的三个阶段分发(dispatchTouchEvent)返回true表示事件被当前视图消费掉了,不在分发;surper.dispatchTouchEvent表示继续分发该事件;viewGroup及其子类时会调用onInterceptTouchEvent来判断是否拦截该事件拦截(onInterceptTouchEvent)只存在 viewGroup及其子类返...
2018-08-12 10:49:12
244
原创 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
187
原创 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
393
原创 Android 点击穿透
对最上层视图控件添加点击事件: vNullData.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true;
2017-09-22 09:45:08
1797
原创 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
504
原创 设置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
522
原创 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
2333
原创 代码设置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
2690
原创 Android监听网络状态变化
监听网络状态变化android可以通过监听广播来监听网络状态的变化,在手机网络发生变化时,系统会发送一个广播。下面是实现步骤:1. 给清单文件添加权限<!-- 获取手机网络权限--><uses-permission android:name="android.permission.INTERNET" /><!-- 获取网络状态改变 --><uses-permission android
2017-04-22 15:22:13
557
原创 android实现开机自启动
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-04-15 15:44:55
406
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人