
Android
XueQiYa
不再更新
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android AIDL进程间通信的简单使用
Android AIDL进程间通信的简单使用原创 2019-11-14 11:02:20 · 275 阅读 · 0 评论 -
常用算法和数据结构
开始重新找工作了,复习一下常用算法和数据结构冒泡排序 /** * 冒泡排序 * 每趟冒出一个最大数/最小数 * 每次运行数量:总数量-运行的趟数(已冒出) */ public void bubbleSort() { for (int i = 0; i < array.length - 1; i++) { ...原创 2019-10-31 19:39:57 · 232 阅读 · 0 评论 -
Android Studio 报错 没有到主机的路由 (Host unreachable)
Android Studio 报错 没有到主机的路由 (Host unreachable)可以推测hosts文件中没有路由指向localhost,打开hosts文件查看下sudo vim /ect/hosts删除第二个即可原创 2019-10-12 16:32:44 · 2855 阅读 · 0 评论 -
Android启动Application onCreate走了多次
问题启动app,在application中oncreat中写了网络请求,发现后台收到的网络请求又多次,但是android中debug,log都显示只打印了一次解决通常情况下,一个apk应用我们都是默认开启一个进程,其进程名为AndroidMainfest.xml文件中指定的应用包名,所有的基本组件都是在这个进程中进行,application会被执行一次。但是如果我们工程涉及到多进程,那么就会...原创 2019-07-09 15:09:34 · 1882 阅读 · 0 评论 -
Kotlin data class
看了谷歌的项目,已经基本全部使用的kotlin了发现使用data class来定义了一个实体类查找资料发现,data class就是一个类中只包含一些数据字段,类似于vo,pojo,java bean。一般而言,我们在Java中定义了这个数据类之后要重写一下toString,equals等方法。要生成get,set方法。然而在Kotlin中这些都不在需要自己手动去敲了,编译器在背后默默给我...原创 2019-07-09 15:55:11 · 851 阅读 · 0 评论 -
Kotlin log 工具类
import android.util.Logobject LogUtils { private val isDebug: Boolean = true private val TAG: String = "日常打log" /** *包装log.d日志 */ fun d(msg: String) { if (isDebug)...原创 2019-07-11 09:47:03 · 2828 阅读 · 0 评论 -
Activity和Fragment的OnActivityResulth回调
Activity和Fragment中都有startActivityForResult方法经测试直接用startActivityForResult如果用这种启动方式,测试结果是activity和fragment的OnActivityResult都收到了回,fragment收到的是正确的我们发送的requestCode,但是activity收到的不是我们发送的requestCode,使用get...原创 2019-07-17 15:39:39 · 296 阅读 · 0 评论 -
JUnit框架 基本使用
添加依赖dependencies { testCompile 'junit:junit:4.12'}Assert类中主要方法如下:方法名方法描述assertEquals断言传入的预期值与实际值是相等的assertNotEquals断言传入的预期值与实际值是不相等的assertArrayEquals断言传入的预期数组与实际数组是相等的as...原创 2019-08-15 09:57:42 · 349 阅读 · 0 评论 -
Git代理相关
Git设置和取消代理设置代理:git config --global https.proxy http://127.0.0.1:1080git config --global https.proxy https://127.0.0.1:1080git config --global http.proxy 'socks5://127.0.0.1:1080' git config --...原创 2019-10-09 15:13:45 · 124 阅读 · 0 评论 -
Android compileSdkVersion、minSdkVersion、targetSdkVersion
compileSdkVersioncompileSdkVersion是我们告诉Gradle,我们是用哪一版本的Android Sdk去编译程序的,可以使用这个版本的API,比如我们使用的是7.0的版本,compileSdkVersion=24,那么我们对于拍照裁剪图片等功能的操作,就可以使用FileProvider了。我们需要注意的是:我们改变compileSdkVersion的版本号,本质上...原创 2019-07-09 14:59:42 · 1885 阅读 · 1 评论 -
Android 8.0以上启动Service
问题在android 8.0以上版本谷歌对后台service进行了严格限制,不允许后台service默默的存在,若想用service,必须以startForegroundService的方式启动service且必须在service内部5s内执行startForeground方法显示一个前台通知,否则会产生ANR或者crash。解决问题在MainActivity中启动服务Intent int...原创 2019-07-12 16:57:33 · 1842 阅读 · 0 评论 -
Retrofit+RxAndroid简单使用
请求网络object GetRetrofitService { lateinit var client: OkHttpClient fun init() { client = OkHttpClient.Builder() .connectTimeout(20, TimeUnit.SECONDS) ...原创 2018-06-12 11:33:42 · 569 阅读 · 0 评论 -
setEnabled() 和 setClickable()
都可以做到按钮是否可以点击setClickable():设置成true时,按钮为可点击,设置为false时,按钮不可点击,不能响应点击事件,但此时如果setEnabled()为true,那么按钮即使不可点击(setClickable()为false),也会产生变化(一闪一闪)。setEnabled():为false,该控件将不再响应点击、触摸以及键盘事件等,处于完全被禁用的状态,...原创 2018-06-12 09:28:13 · 1692 阅读 · 0 评论 -
CountDownTimer实现验证码倒计时
timer = object : CountDownTimer(60000, 1000) { // 第一个参数是总的倒计时时间 // 第二个参数是每隔多少时间(ms)调用一次onTick()方法 override fun onT...原创 2018-06-12 08:51:56 · 189 阅读 · 0 评论 -
android gradle tools 3.X 中依赖,implementation ,api , compile区别
在com.android.tools.build:gradle 3.0 以下版本依赖在gradle 中的声明写法compile fileTree(dir: 'libs', include: ['*.jar'])但在3.0后的写法为implementation fileTree(dir: 'libs', include: ['*.jar'])或api fileTree(dir: 'libs...原创 2019-06-05 10:17:12 · 228 阅读 · 0 评论 -
ADB 命令
常用adb devices // 显示连接到计算机的设备adb get-serialno // 获取设备的ID和序列号serialNumberadb kill-server // 终止adb服务进程adb start-server // 重启adb服务进程adb root // 已root权限重启adb服务adb wait-for-device // 在模拟器/设备连接之前把命令转载...原创 2019-06-01 18:41:26 · 245 阅读 · 0 评论 -
Android项目引入Flutter
创建Flutter模块假如老项目目录在/Users/xq/Android/Projects/NativeFlutter/cd ..切换到上目录执行flutter create -t module flutter_module上面的命令会创建一个flutter的项目模块,在flutter_module文件夹中有一个.android的隐藏文件夹,里面包裹了一个安卓库的工程模块。可以使用如下...原创 2019-06-17 10:12:22 · 1590 阅读 · 0 评论 -
kotlin的内联函数之inline、noinline、crossinline、reified
首先看下方法的调用流程调用一个方法其实就是一个方法压栈和出栈的过程,调用方法时将栈帧压入方法栈,然后执行方法体,方法结束时将栈帧出栈,这个压栈和出栈的过程是一个耗费资源的过程,这个过程中传递形参也会耗费资源。为什么要使用内联函数inline我们在写代码的时候难免会遇到这种情况,就是很多处的代码是一样的,于是乎我们就会抽取出一个公共方法来进行调用,这样看起来就会很简洁;但是也出现了一个问题,就...原创 2019-07-08 15:50:08 · 1106 阅读 · 0 评论 -
Android Application中全局变量导致NullPointException
问题接手一个项目,根据统计的奔溃日志,发现遇到点问题,当我们将应用按home键放入后台运行,一段时间后,当我们再次打开应用的时候,十有八九会出现一个NullPointException的空指针异常,定位问题,发现将很多数据放入了application中作为全局变量,导致了问题的产生。因为当应用程序在后台运行的时候,当我们将应用程序切入到后台或者当内存不足时,系统可能会将当前应用的applica...原创 2019-07-03 15:56:10 · 995 阅读 · 0 评论 -
点击TabLayout标签无法切换页面
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="htt...原创 2018-06-27 15:04:50 · 1598 阅读 · 0 评论