- 博客(50)
- 资源 (8)
- 收藏
- 关注
原创 Androidstudio 拉取代码错误 Invocation failed Unexpected end of file from server
androidstudio 拉取代码错误
2022-10-10 10:18:26
1187
1
转载 2021-03-01
1. 概述Google 推出了 JetPack 的新成员 DataStore,DataStore 是一种新的数据存储方案。DataStore以异步、一致的事务方式存储数据,克服了 SharedPreferences 的一些缺点。Jetpack DataStore 是经过改进的新版数据存储解决方案,旨在取代 Shared>Preferences。DataStore 基于 Kotlin 协程和流程构建而成,提供两种不>>同的实现: Proto DataStore,它允许您存储.
2021-03-01 22:27:32
253
原创 linux下使用cmake交叉编译Android可以使用的动态库
一、使用NDK、Cmake交叉编译可以在android上使用的动态库在NDK16版本以上,自带Cmake交叉编译工具链,建议使用ndk16版本及以上的。我这里使用的是当前最新的ndk20版本。步骤:安装ndk。目前最新的ndk是ndk20版本,怎么安装请看:ubuntu下ndk安装教程搭建好工程目录,怎么搭建请看上一章。这里给大家看一下,我的一个小实例。唯一和上一章不同的地方就confirgure.sh脚本的编写,其他的都可以按照上一章的步骤。后面我会把CMakeLists.txt、md
2020-12-10 14:41:57
3758
1
原创 linux下cmake练手小实例
一、使用Cmake编译生成so库要求:用cmake编译生成so库。目录列表如下:include: 存放头文件的。hello.h: 头文件,下面是头文件的内容#ifndef HELLO_H#define HELLO_H#include <stdio.h>void HelloFunc();#endiflib: 用来存放编译生成的so目录src: 源文件存放目录hello.c: 源文件,下面是源文件的内容#include “hello.h”void Hello
2020-12-10 14:37:45
667
原创 java 多线程按顺序执行、顺序获取结果
文章目录1、通过Thread的join方法2、FutureTask3、CountDownLatch(倒计数)4、wait、notify5、Condition(条件变量)6、CyclicBarrier(回环栅栏)5、线程池5.1、单线程化线程池5.2、多线程化线程池1、通过Thread的join方法join主要是让父线程等待子线程结束之后父线程才能继续运行 public static void main(String[] args) throws InterruptedException {
2020-12-10 13:45:31
4928
原创 面试题-100盏灯问题
题目一间屋子里有100盏灯排成一行,按从左至右的顺序编号1、2、3、4、5…99、100,每盏灯都有一个开关,开始全部都关着,现有100个学生,第1个学生把1的倍数的灯全部拉一下,第2个学生把2的倍数灯全部都拉一下,第3个学生把3的倍数灯全部都拉一下…第100个学生把100的倍数灯全部都拉一下,这时灯有多少是开着的?解法一思路:1、第1个学生按了1的倍数的灯,也就说被按灯的编号为:1、2、3、4、5、6、7、8…99、1002、第2个学生按了2的倍数的灯,也就说被按灯的编号为:2、4、6、8
2020-11-19 21:18:40
6170
3
原创 JVM类加载机制,java类的加载时机
参考https://baijiahao.baidu.com/s?id=1636309817155065432&wfr=spider&for=pchttps://blog.csdn.net/zhangliangzi/article/details/51319033一、什么是类的加载1、什么时候进行类的加载2、从哪个地方加载二、类的加载过程...
2020-08-16 17:43:10
468
原创 java类加载,父委托机制(也叫双亲委托机制)
在介绍ClassLoader之前,先提几个问题: 1、新建一个java工程,创建一个Long类,在里面写上如下代码package java.lang;public class Long { public static void main(String[] args) { System.out.print("long"); }}2、 运行,会发生...
2020-08-15 17:47:16
212
转载 androidx中的Fragment懒加载
在进入正文之前要强调一下,本文的分析基于androidx 1.1.0版本,文中提到的setMaxLifecycle()方法是1.1.0-alpha07版本才引入的。最近把Android Studio更新到了3.5版本,新建项目时发现竟然已经强制使用androidx包了。于是想着把以前项目中的一些公共类,像BaseActivity、BaseFragment等等都迁移到androidx方便今后的开发,要做的也很简单,就是重新导包,将原来的“support系列”替换为“androidx系列”。简单的迁移完成
2020-08-13 21:21:22
1533
4
转载 android高级面试题,有难度
作者:Focusing链接:https://juejin.im/post/5c984e926fb9a070c975a9b4Android进阶延伸点1、如何进行单元测试,如何保证App稳定 ?参考回答: 要测试Android应用程序,通常会创建以下类型自动单元测试本地测试: 只在本地机器JVM上运行,以最小化执行时间,这种单元测试不依赖于Android框架,或者即使有依赖,也很方便使用模拟框架来模拟依赖,以达到隔离Android依赖的目的,模拟框架如Google推荐的Mockito;And
2020-07-28 21:15:42
2040
转载 Android高级面试题精选
作者:Focusing链接:https://juejin.im/post/5c85cead5188257c6703af47Handler1、谈谈消息机制Handler作用 ?有哪些要素 ?流程是怎样的 ?参考回答:负责跨线程通信,这是因为在主线程不能做耗时操作,而子线程不能更新UI,所以当子线程中进行耗时操作后需要更新UI时,通过Handler将有关UI的操作切换到主线程中执行。具体分为四大要素Message(消息):需要被传递的消息,消息分为硬件产生的消息(如按钮、触摸)和软件生成的消
2020-07-28 21:13:17
2383
原创 linux下,cmake如何使用外部共享库和头文件
在看这篇文章之前,建议先看看linux下小试cmakelinux下小试cmake2在linux下使用cmake构建静态库和动态库上一节我们已经完成了 libhello 动态库的构建以及安装,本节我们的任务很简单:编写一个程序使用我们上一节构建的共享库。1,准备工作请在/backup/cmake 目录建立 t4 目录,本节所有资源将存储在 t4 目录。2,重复以前的步骤,建立 src 目录,编写源文件 main.cmain.c的内容如下:#include <hello.h>i
2020-07-25 07:22:41
3291
1
原创 在linux下使用cmake构建静态库和动态库
本节的任务:1:建立一个静态库和动态库,提供 HelloFunc 函数供其他程序编程使用,HelloFunc向终端输出 Hello World 字符串。2:安装头文件与共享库。一,准备工作:在/backup/cmake 目录建立 t3 目录,用于存放本节涉及到的工程二,建立共享库cd /backup/cmake/t3mkdir lib在 t3 目录下建立 CMakeLists.txt,内容如下:PROJECT(HELLOLIB)ADD_SUBDIRECTORY(lib)在 lib
2020-07-23 21:43:47
2335
原创 linux下小试cmake2
看这一篇之前,建议看下上一篇inux下小试cmake从本小节开始,后面所有的构建我们都将采用 out-of-source 外部构建,约定的构建目录是工程目录下的 build 自录。本小节的任务是让前面的 Hello World 更像一个工程,我们需要作的是:1,为工程添加一个子目录 src,用来放置工程源代码;2,添加一个子目录 doc,用来放置这个工程的文档 hello.txt3,在工程目录添加文本文件 COPYRIGHT, README;4,在工程目录添加一个 runhello.sh 脚
2020-07-23 21:30:31
454
原创 linux下小试cmake
一、在ubuntu下安装cmakesudo apt-get update sudo apt install cmakesudo apt-get install -y build-essential官网:https://cmake.org/cmake-tutorial下面是一篇cmkae文档,直接copy的。按照文档敲几遍差不多就可以掌握了。二、初试 cmake – cmake 的 helloworldHello world,世界 你好本节选择了一个最简单的例子 Helloworld
2020-07-22 21:28:53
777
转载 Activity的启动过程详解(基于Android10.0)
作者:胡飞洋博客:https://juejin.im/post/5f05c6dfe51d4534c36d8f59一、概述话说Android中有四大组件:Activity、Service、BroadcastReceiver、ContentProvider。我们最常接触也是用户直接感受到的就是Activity了,今天来就说说Android启动的执行过程和工作原理。Activity是一种 展示型组件,用于展示给用户一个可以交互的页面。Activity是Android中最重要的组件,对用户来说,所有的Act
2020-07-14 14:19:12
1270
原创 kotlin+协程+Retrofit+MVP 开发框架
kotlin出来的时间也不短了,相信很多猿哥猿姐们都已经入坑。在使用了kotlin之后,尝试的使用了一下协程,之后就果断的抛弃了之前使用的rxjava+retrofit这一套。之所以抛弃rxjava,是因为 协程+retrofit 会让代码更加的清晰简洁,它可以做到 以 同步 的方式写出 异步 的代码。什么是协程:其实网上很多高大上的解释,看了之后反而更加迷糊了。其实协程我个人的理解,他就是一套线程切换的框架。下面看一下代码片段:override fun singlePoetry() {
2020-06-15 21:17:30
915
原创 Android Dialog封装
先看效果具体使用 CommonDialogBuilder(this, R.style.CommonDialogStyleTest).withType(CommonDialogBuilder.NOTITLE_ONLY) .withTitle("标题") .withMessage("消息") .withNegative { ...
2019-08-05 13:32:20
1292
原创 一、SpringBoot环境搭建(Windows)
SpringBoot的环境,需要三个方面:JDK、Maven、IDEA1、JDK下载安装,配置环境变量2、Maven官网下载接下来就是在 settings.xml 文件中配置 阿里云镜像。settings.xml 文件在conf文件下 <mirrors> <mirror> <id>alimaven</id> ...
2019-07-18 22:55:34
2959
原创 什么是内部类?内部类的种类?内部类的作用?
一、什么是内部类将一个类定义在一个类或者一个方法里面,这样的类称着内部类https://www.jianshu.com/p/83a50ef23279https://blog.csdn.net/lianxu3344/article/details/79473607https://blog.csdn.net/flyfeifei66/article/details/82686086https:...
2019-05-08 22:47:47
15980
5
原创 String、StringBuilder和StringBuffer的区别
一般说这三个类的区别,主要是都是说运行速度和线程安全这两个方面。一、运行速度进行字符串操作的时候,这三个类的运行速度由快到慢分别是StringBuilder>StringBuffer>String。很多时候,我们进行代码优化的时候,如果涉及到很多字符串操作的都会使用StringBuilder或者StringBuffer,那是因为String为字符串常量,String对象一旦创建...
2019-05-07 19:37:38
211
原创 Java-int和Integer的区别
在说int和Integer的区别之前,先要弄清楚两个问题:一、java基本数据类型及其封装类二、java自动拆箱和自动装箱一、java基本数据类型及其封装类数据类型字节大小封装类byte8位Byteshort16位Shortint32位Intergerlong64位Longfloat32位Floatdouble64位...
2019-05-05 22:46:57
24267
20
原创 final,finally,finalize的区别
finalfinal关键字可以用于类,方法,变量前 1、final关键字用于基本数据类型前:这时表明final关键字修饰的变量是一个常量,在定义后该变量的值就不能被修改。 2、final关键字用于引用数据类型前:这时表明final关键字修饰的引用变量所引用的地址是不可变的,即永远引用同一个对象。但这个对象的内容是可变的。如:final StringBuilder stringBui...
2019-05-05 16:29:17
187
原创 ==、equals和hashCode区别
一、介绍下三者1、”==”运算符只比较两个变量的值是否相等。 如果是变量基本数据类型,那可以直接用”==”比较是否相等,而且只能用”==”比较,基本数据类型不存在equals比较。 如果变量指向引用数据类型(对象),那比较的是变量所保存的两个引用数据类型的内存地址是否相等。如果要比较两个对象的 内容是否相等,”==”是做不到的。2、equals是Object里的一个方法,所以java...
2019-05-05 16:27:44
265
原创 android如何判断两台设备在同一个局域网内
android如何判断两台设备在同一个局域网内目录android如何判断两台设备在同一个局域网内第一种方法,比较(ip与netMask)的值第二种方法,根据TTL跳数判定在不在同一个局域网判断两台设备在不在同一个局域网内有两种方法:第一种方法是:分别拿到两台设备的ip地址(int类型的ip)和子网掩码(int类型的netMask),然后得到两台设备 ip and netMask 的值,如果相...
2019-04-24 17:00:23
4048
原创 UML类图
一、简介类图:类图其实就是展示类和类之间关系的一种静态模型图TODO 关于UML使用的软件二、UML中类的展示在UML类图中,类用包含类名、属性和函数的长方形来表示。1、UML规定属性的表示方式为: 可见性 名称:类型 = 默认值可见性:表示该属性对于别的类是否可见。包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、...
2018-12-01 15:24:55
729
原创 Android NDk-JNi开发(四)、JNI与Java的相互调用
此篇幅主要讲解java调用jni的方法和jni调用java一、Java调用jni中的方法1、Java调用jni方法,并传一个基本类型的参数java代码public native int operatInt(int num);public static native int operatStaticInt(int num);C++代码extern &amp;amp;amp;amp;amp;amp;quot;C&amp;amp;amp;amp;am
2018-10-31 22:22:57
795
1
原创 Android NDk-JNi开发(三)、JNI数据类型并且与Java的映射关系
一、JNI的数据类型:jni的数据类型分类和java一样,分为基本数据类型和引用数据类型1、基本数据类型jni的基本数据类型有jboolean、jbyte、jchar、jshort、jint、jlong、jfloat、jdouble这几种。2、引用数据类型jni的引用数据类型有:jobject、jclass、jstring、jarray、jobjectArray、jbooleanArra...
2018-10-28 22:49:05
404
原创 Android NDk-JNi开发(二)、JNI简便开发流程,使用Cmake进行开发
1、使用cmake需要的环境安装图片红框中的2、创建一个工程,如下,勾选 Include C++ support选项3、项目中会出现一个CmakeLists.txt文件,里面的详细内容:cmake_minimum_required(VERSION 3.4.1)//版本//这个就是将我们的native-lib.cpp文件,生成最后的native-lib.so库文件//这句话用j...
2018-10-28 22:13:20
268
原创 Android性能优化优秀博客集锦
一、Android应用性能优化最全面的博客 http://blog.csdn.net/dd864140130/article/details/62431927
2017-11-27 09:59:04
250
转载 Android仿qq实现锁屏消息提醒
效果图 适用应用场景适用应用场景:应用没有完全退出的情况下在后台运行时,如果用户已经关闭了手机屏幕,如果我们的APP收到推送消息,则打开手机屏幕,弹框显示消息的方式来提醒用户。实现思路在收到自己服务器的推送消息时,发送一条广播,在接收到指定广播之后在广播的onReceive()中判断当前屏幕是否处于关闭状态,如果处于关闭状态,则显示这个弹窗消息,反之,则不需要显示实现步骤1.Service中发送广
2017-11-25 15:19:08
8383
1
原创 kotlin学习7(基础操作符、控制流、函数)
fun main(args: Array<String>) { //----------------------操作符----------------------------------/ /** * 操作符:类似数学的 + - * /,用于运算或操作;用于操作对象的数目,被称之为几元操作符 */ //操作一个目标,是一元操作符 var i = 1 val j = +i va
2017-06-18 20:18:08
655
原创 kotlin学习集合6(Array、Set、Map)
fun main(args: Array<String>) { /** * 集合, * 集合根据特性分: * 1、有序可重复 -Array * 2、无序不重复 -Set * 3、无序可重复 -Map,有唯一的键(key) */ /**-----------------Array-----
2017-06-14 22:45:03
5829
原创 kotlin学习5(字符,字符串,元组)
fun main(args: Array<String>) { //----------------------------------------------------- /** * 字符用 Char 类型表示。字符字面值用单引号括起来: '1'。 * 特殊字符可以用反斜杠转义 * 支持这几个转义序列:\t、 \b、\n、\r、\'、\"、\
2017-06-14 21:41:00
4170
1
原创 kotlin学习4(整数、小数、布尔型)
/*** * int整型 * 形式:var 变量名 : Int = 11 * 因为kotlin有类型推断,所以类型可以省略不写 * 如:var 变量名 = 11 */var getUp = 6var getUp1 : Int = 6/** * 浮点型(小数) * kotlin中默认的浮点型是Double(双精度) * Float 用 f 或者 F 标记: 123.5f */
2017-06-13 21:04:18
5453
原创 kotlin学习3(常量val、变量var)
/*** * 常量:恒定不变的量 * 定义:val 常量名;形式 val 常量名 = 值 * 举例:val constant = 1 *//** * 变量:可变动的量 * 定义:var 变量名;形式 var 变量名 = 值 * 举例:var variable = 5 *//** * 什么时候使用常量,什么时候使用变量? * 如果不知道什么时候使用常量什么时候使用变量,优先使用常量
2017-06-11 21:36:52
1048
原创 kotlin学习1(环境搭建)
最近大家都在谈论kotlin,所以就抽个空学习下 附上官方学习资料 1、kotlin的官方github地址 https://github.com/JetBrains/kotlin 2、官方中文翻译站点 https://www.kotlincn.net 一、环境搭建本人使用的是Android Studio2.3.3版本1、安装插件,这个直接在plugins搜索kotlin,点击安装、重启,就
2017-06-11 18:22:38
329
转载 Android Sqlite 增删改查语法
SQLite的数据类型sqlite只有5中数据类型: NULL:空值相当于Java中的null INTEGER:带符号的整型,相当于Java中的int型 REAL:浮点数字,相当于Java中float/double型 TEXT/VARCHAR:字符串文本,相当于Java中String类 BLOB:二进制对象,相当于Java中的byte数组,用于存放图片、声音等文件SQLite的约束
2017-04-03 14:40:22
1038
JNI与Java方法的相互调用
2018-11-04
Tensorflow 实战Google深度学习框架 pdf版
2017-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人