7 lidongxiu0714

尚未进行身份认证

https://github.com/hpuzzuldx/

等级
TA的排名 4k+

android studio Library source does not match the bytecode for class

android studio Library source does not match the bytecode for class 这个错误是引用的aar或者jar中的某些代码,还是旧的库中的文件,可能的原因是android Studio 引用了gradle的cache中的库,导致无法使用新的代码,编译无法通过。解决办法:找到gradle缓存的位置:打开缓存:找到缓存的文件夹,...

2020-01-09 10:50:57

android 判断是白天还是晚上,然后设置地图模式

简单的判断白天,晚上的java代码 /** * true day 白天 return false晚上 * @return */ public static boolean isDayOrNight() { if (get24HourMode()) { //24小时制 Calendar c ...

2020-01-03 13:55:26

gradle中简单配置一个项目对应不同系列设备生成部分代码不同app文件

build.gradle中添加 ,defaultConfig 中设置 flavorDimensions “default” productFlavors { "C80X" { // applicationIdSuffix ".d" 也可以设置不同applicationId buildConfigField "String", "...

2019-12-03 17:21:08

android Studio修改生成apk文件的名称

app的build.gradle中添加:variant.name是buildTypes中设置的type,android.defaultConfig可以获取versionName。SimpleDateFormat需要引入在build.gradle的文件顶部 import java.text.SimpleDateFormatandroid.applicationVariants.all { va...

2019-11-28 13:48:10

android 屏幕方向随传感器变化,并带有切换大屏,小屏和锁定屏幕方向

直接上完整代码:import android.content.pm.ActivityInfo;import android.content.res.Configuration;import android.os.Bundle;import android.provider.Settings;import android.support.v7.app.AppCompatActivity;...

2019-10-09 19:05:13

Android 屏幕方向相关,setRequestedOrientation,OrientationEventListener

1 Activity 在AndroidManifest.xml设置方向android:screenOrientation正向拿着手机(平时正常拿手机)对应角度为0度,此时屏幕为为竖屏,旋转180度,对应角度180度,此时屏幕为反向竖屏;90时此时屏幕为横屏(用户右侧(正向)横屏拿着手机),屏幕角度为270,此时屏幕为反向横屏。Android可以利用android:screenOrientat...

2019-10-08 14:22:17

debugCompile(debugImplementation)和 releaseCompile(releaseImplementation)的使用-leakcanary release中不起作用

debugCompile(debugImplementation)和releaseCompile(releaseImplementation)debugCompile(debugImplementation)debugCompile 只在 debug 模式的编译和最终的 debug apk 打包时有效releaseCompile(releaseImplementation)Release ...

2019-10-08 11:28:01

DialogFragment监听back键和设置宽高

implements AddressManagerView , DialogInterface.OnKeyListener {@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInst...

2019-08-27 14:34:34

Fragment addToBackStack(null)的作用

Fragment常用于一个activity中展示多个相对独立的部分,利用add,show,hide进行fragment的添加,展示和隐藏。 FragmentA fragmentA = FragmentA .newInstance(parameter); getSupportFragmentManager().beginTransaction() ...

2019-08-22 20:05:01

线程的状态

线程的状态 public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in...

2019-09-01 10:44:37

Messenger 实现进程间通信IPC

AIDL可以实现进程间通信,但使用稍显复杂,Messenger也可以实现进程间通信,Messenger底层实现利用了 AIDL ,系统已经帮我们完成了Aidl的书写。Messenger可以在不同进程中传递 Message 对象,利用Handler一次只处理一个请求,不存在并发执行的情形。所以这是Messenger的优点,也是它的缺点,它无法用于大量的并发操作,但对于简单的进程间通信则十分好用。利用...

2019-09-01 10:23:50

使用锁实现同步简单使用

如果想要static方法和普通的方法在同步情况下不能同时执行,单靠synchronized实现非常有难度,因为静态方法以class对象为锁,普通方法以具体的具体的对象为锁,java提供的另一种同步机制利用Lock接口及其实现类,比synchronized更加灵活。synchronized可以支持更灵活的同步代码块结构,synchronized只能在synchronized块结构中获取和释放锁,L...

2019-09-01 10:22:37

synchronized实现同步

利用synchronized关键字是最简单的实现同步的方式,synchronized可以用于方法,代码块,synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见。也就是保证了临界区某一时刻只能被一个线程访问(被synchronized修饰的方法,或者代码块都是临界区)。当一个线程进入了临界区,其他试图访问该临界区...

2019-09-01 10:22:15

影响线程执行的函数(sleep,join,yield,priority,daemon)

1 sleepsleep使当前线程睡眠指定的毫秒数(暂停执行),但由于系统计时器和调度方法的影响,时间不是那么精准。当线程在同步代码中持有monitor时,sleep不会导致线程释放已经获取的锁(虽然当前线程暂停了,但其他竞争线程依然无法获取锁)。会抛出线程中断异常,必须处理。到达指定之间之后,线程会自动苏醒,变为可运行状态而不是运行状态,所以sleep内的时间是线程休眠的最短时间。sle...

2019-09-01 10:20:48

线程同步和同步原理

1 多线程问题,临界区单线程由于按顺序继承(即使存在编译器优化,指令重排等优化策略也会保证程序的正确执行),多线程情况下,如果存在共享资源的情况,就会出现并发问题。多个线程访问或者修改共享数据,会导致数据的不一致性,进而导致出错,线程同步机制就是用来防止错误发生的机制。临界区定义为访问共享资源的代码块,如果同一时间能够保证只有一个线程访问临界区,就不会发生错误。public class D...

2019-09-01 10:15:48

如何结束线程-线程中断

线程停止的方式:线程执行完毕,自然会停止异常退出设置了标志位,当标志位为false时退出线程中断退出线程函数执行完毕正常退出和发生异常被迫退出都不受我们控制,下面讨论控制线程停止的方式。设置退出标志位:package com.sync.demo;import javax.swing.text.html.HTML.Tag;public class Demo5 { pub...

2019-09-01 10:14:56

线程间交互(wait notify)

1 线程间交互线程间的交互,也就是相互通知,进而达到相互控制,java中线程间的交互要用到java.lang.Object的类的三个方法分别是wait,notify(),notifyAll,三个方法的调用必须在同步环境内调用,也就是线程获取了对象的锁后才能调用。如果线程A持有线程B的对象的锁,多线程环境下只有当线程A获取了线程B的锁后(同步环境下)时,线程A才能调用B的wait,notify(...

2019-09-01 10:13:01

Thread调用start和run的区别

学习Thread的第一天就知道要调用Thread的start方法,不要调用Thread额run方法,为什么呢?新建一个Thread类的实例,然后调用run方法,相当于调用普通的方法,属于当前线程的一个方法执行,可以重复多次调用,run方法运行结束, 此线程终止, 而CPU再运行其它线程。run()方法当作普通方法的方式调用,程序还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的...

2019-08-12 16:26:02

implementation,compile,api,Unable to resolve dependency ':app@debugAndroidTest/compileClasspath'

gradle3.+版本后,gradle的依赖方法发生了改变,推荐使用implementation,compile已经不被推荐,api的作用和compile相同。androidTestCompile被 androidTestImplementation替换,testCompile被 testImplementation 替换,本篇主要讲解implementation和api。简单总结上面的意思就...

2019-08-12 09:47:16

进程线程的概念区别

以下内容来自于百度百科和自己的理解:1进程进程(Process)的抽象概念是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。通常情况下window下一个exe就是一个进程,android中一个apk就是一个进程(也可以多进程)。进程的关键点:第一,进程是一个实体。每一个进程都有它...

2019-08-12 09:45:10

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。