3 京城最明亮的少年

尚未进行身份认证

生活应该充满挑战和艰险才显得无比的精彩!

等级
TA的排名 2w+

Android开发无线调试

很多目前还在用数据线进行调试,但是其实可以进行无线调试的,今天就来介绍下,看到网上很多写的都不怎么正确,很乱,而且有的还不管用,请读者按照以下步骤操作环境:Androidstudio3.4.1设备:Android9.01打开开发者选项,打开USB调试2是用USB命令F:\resource\HomeApp\android\demo>adbusbrestarting...

2019-08-19 09:14:07

Java反射,带你全面解析Java反射

一、前言相信很多没有听说过反射,这也很正常,因为在一般的开发中反射基本上用不着、但是我再Android开发中经常涉及到内存优化、性能优化的问题,需要使用反射,那么今天带给大家一顿丰富的Java反射大餐。二、反射定义反射就是在运行中获取你想获取的一个类中的类实例、方法、成员变量。即使这个类不对外暴露三、反射的优点可以在程序运行中,操作这些对象解耦、提高程序的可扩展性四、反射的机制...

2019-07-19 14:29:05

Java优雅的实现锁和超时锁

在Java多线程中,我们会遇到多个线程访问同一个资源,产生竞争,如果操作不到会导致死锁的产生,例如在现实中的十字路口,锁就像红路灯指示器,一旦锁坏了,就会导致交通瘫痪。通过本篇文章读者可以学到以下内容多线程并发锁的使用超时锁一、编写锁的接口publicinterfaceLock{ //自定义异常类publicstaticclassTimeOutExcepti...

2019-07-10 16:32:48

Java多线程消费者和生产者模式并发死锁问题解决

以下是文章的主要核心点文中采用Stream流的方式创建多个生产者和消费者利用对象的wait()进行阻塞利用synchronized的原理创建唯一的Monitor的LOCK对象通过notifyAll()唤醒阻塞,此处不能用notify()importjava.util.stream.Stream;publicclassProduceConsumer{priv...

2019-07-10 13:44:05

正确理解Java中的Future

说到这个相信很多刚入行的程序员,对这个并不是很熟悉,这个单词的意思是未来简单的给它阐述一下:这是一个对象,存储的耗时操作给它赋的值,我们先拿到他的引用,等他有值了,就可以使用。通俗的讲,就是我拿到一个变量的引用,里面没有值,子线程计算完了,把值赋值给它,我后面就可以用,不用我一直等子线程执行完。看代码://首先定义一个接口publicinterfaceFuture<T&g...

2019-07-08 11:45:49

Android 分辨率和dp px等之类的介绍

因为要做屏幕适配和内存优化,随便看了这方面的,自己总结下备用分辨率px如:720*1080表示=>720px*1080px=>720像素点*1080像素点通俗的讲,就是宽度有720个像素点,竖向右1080个像素点。屏幕尺寸in如:我们一般说屏幕多少寸多少寸,说的就是这个,这里说的是对角线的长度,这里有个公式1寸就是1英寸,1英寸=2.54厘米,也...

2019-07-03 10:05:35

App启动流程与消息机制

相信很多人对这个问题不陌生,但是大家回答的都比较简单,如谈到app启动流程有人就会是app的生命周期去了,谈到消息机制有人就会说looper循环消息进行分发,如果是面试可能面试官不会满意,今天我们搞一篇完善的源码解析来进行阐述上面的问题1、第一步了解ThreadLocal什么是ThreadLocal呢,专业的来讲,ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程...

2019-06-21 14:40:24

java对象池

首先介绍下对象池,所谓的对象池就是存储一部分对象到一个池中,需要时就取,不需要时候就释放,其实对象池中维护的是两个SparseArray。那么对象池有什么用呢,当然是有用的,假设一个场景,在消息处理的时候,比如聊天软件中每个消息都不停的创建和销毁那么这样一来就会给GC造成很大的压力,此时此刻对象池就可以派上用场了,其实在这里我们可以联想到线程池。首先我们看对象池ObjectPool,这是一个抽...

2019-06-17 00:04:58

自定义枚举

Java中的自定义枚举优化在性能优化中,枚举的每一个都是一个实,比较耗内存,采用注解能很好的解决这个问题publicclassSHAPE{publicstaticfinalintRECTANGLE=0;publicstaticfinalintTRIANGLE=1;publicstaticfinalintSQUARE=2;p...

2019-06-16 21:19:41

Java中的Future

提到这个Future,相信英文好的人都知道,这个单词的意思是表示未来,今天的用法也跟这个单词的意思相类似在做开发中我们经常遇到这样一个问题,就是一个问题需要执行比较久,但是有需要等待它的结果,于是我们会使用线程来做,但是使用线程也会到一个问题,我什么时候调用呢,如果调用早了肯定会出现空指针异常的,今天我的就使用这个future来解决这个问题。Future相当于拿到一个应用,这个引用在线程没有执...

2019-06-15 15:26:51

kotlin的Anko库

Anko库是一个很强大库,我们可以从官网上的一段话看出来HaveyoueverbeentiredofparsingSQLitequeryresultsusingAndroidcursors?Youhavetowritelotsofboilerplatecodejusttoparsequeryresultrows,andencloseit...

2019-06-13 16:00:44

Android权限申请Kotlin版本

有关权限申请的我就不多做介绍了,这里我们实现一个功能1,当访问隐私功能时申请权限2,用户点击了拒绝,下次再进来的时候弹出友善的对话框3,用户点击确定,呈现申请权限对话框4,用户点击了同意申请的对话框,申请权限5,申请成功了调用相关方法overridefuninitData(){ //这里我们需要查询手机内的数据,访问内存信息handlePer...

2019-04-18 11:46:11

Android获取手机内的音频数据

我们经常需要获取手机信息,例如我们想做一个音乐播放器,我们需要拿到本地的音频信息,这样一来,我们就需要考虑如何拿到这些数据了1,一个神秘的apk这个叫做MediaProvider.apk是干什么的呢,和我们今天讲的东西有啥关联吗,其实这是一个正在运行的apk,这个apk是没有界面的,因此我们是看不见的,他的作用就是在后台默默的为我们收集相关的数据信息。,然后保存在数据库里面从上面的截图...

2019-04-17 10:02:44

flutter连续两次点击返回

在软件中有时候可能意外碰到返回键,导致程序返回,下面为大家提供怎么样避免这样的情况。下面的代码主要是实现,在1秒内连续两次点击才出发返回下面的代码中我们主要是通过WillPopScope这个组件来控制点击返回按键的效果import'package:flutter/material.dart';voidmain()=>runApp(MyApp());classMyApp...

2019-04-15 09:07:04

Flutter实现上拉刷新加载

这篇博客主要是实现以下功能flutter中ListView的基本使用上拉加载刷新加载提示准备//在配置文件中添加这个库我们会随机生成单词english_words:^3.1.0基础代码下面这部分代码是死的,我就不介绍了,我们重点介绍_MyInfiniteListViewState这里面的内容import'package:english_words/english...

2019-04-11 17:12:29

ListView通过flutter实现

下面代码中都有详细的注释,我这里就不多写了import'package:flutter/material.dart';voidmain()=>runApp(MyApp());classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){//TODO:...

2019-04-04 14:40:55

kotlin的RecycleView优雅点击事件

说道点击事件,我想大家不陌生,今天我们主要介绍的是在RecycView中的点击事件,同时了解Java和kotlin监听事件的不同,如何优雅的看待kotlin的函数式接口大家一步步来,我们先介绍java的1,简单View的点击事件view1.setOnClickListener(newView.OnClickListener(){@Overrid...

2019-03-25 10:28:29

Django读取图片

django这是一个很强大框架,但是里面的内容我们很难完全弄清楚,经常会遇到一些奇怪的问题,今天我们主要介绍的是在网页上加载动态图片,所谓的动态图片也就是用户上传的照片,并非静态的。用户在点击这里上传图片的时候,我们再后台上传的位置是这样写的image=models.ImageField(upload_to="org/%Y/%m",verbose_name="封面图")因为...

2019-03-23 16:50:11

PyQt5定时器

想必大家都知道呢定时器的功能,就是在固定的一段时间内执行一段逻辑,下面我们来一起分析下,首先看一段代码#自定义object对象,重写里面的timerEvent方法classMyObject(QObject):deftimerEvent(self,a0:QTimerEvent):print(a0)print(time.time())cla...

2019-03-23 10:06:16

PyQt5线程休眠和唤醒

在上一篇文章中我有写线程的终止挂起和唤醒,下面这个例子是线程的休眠和唤醒,是通过线程内一个私有的属性来进行的,读者可以直接将代码跑起来注:网上搜索的资源#!/usr/bin/envpython#-*-coding:utf-8-*-fromPyQt5.QtCoreimportQThread,QWaitCondition,QMutex,pyqtSignalfrom...

2019-03-22 13:59:13

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。