自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 在Android中调用百度的OCR接口

前言最近实验室开了个新项目,是一个通过扫描单词后把扫描过的单词生成游戏来让小朋友记单词的APP,扫描单词这个功能需要用到OCR.现在常用的OCR有Tesseract 这个用的人比较多,而且开源,目前google正在维护,但是我尝试了一下,发现识别准确率不是特别理想。微软的Azure上的认知服务 识别率很高,但是收费,现在有1元体验的套餐,而且不需要验证信用卡,感兴趣的同学可以试试。...

2018-11-23 21:16:52 6214 9

原创 Glide使用与分析

一.使用1.配置依赖在 app 层 build.gradle 中添加依赖 :dependencies { ... implementation 'com.github.bumptech.glide:glide:4.9.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0' annotationProcessor 'androidx.annotation:annotation:1.1.0'

2022-04-17 15:09:51 2436

原创 Android内存泄漏探究

一.什么是内存泄漏内存泄漏(英语:Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存。 — — — 维基百科二.内存泄漏的影响使得应用程序容易发生 OOMAndroid系统为每个应用分配的内存有限,若程序的发生的内存泄漏较多,会导致所需

2022-04-17 15:02:58 1846

原创 Kotlin lambda解析

Kotlin中,充斥着各种各样的Lambda 表达式,这是Kotlin最方便的特性之一了解Kotlin 中的lambda,首先得知道Kotlin中的高阶函数1.高阶函数在Java中,如果有一个a方法,要去调用b方法,那么在里面直接调用即可。int a() { return b(1);}a();接着,如果我不想把调用b方法的参数写死,希望动态设置方法b的参数。int a(int param) { return b(param);}a(1);a(2);这些在Java中很轻松

2022-04-17 14:58:32 1917

原创 解决 AAPT: error: resource android:attr/lStar not found

最近在项目里想尝试下android core的ktx拓展库:implementation "androidx.core:core-ktx:1.7.0"添加完依赖,就美滋滋地开始用ktx提供的各种简洁的语法糖,爽的飞起~一运行,哇擦,竟然报了个错:Android resource linking failed /Users/xxx/.gradle/caches/transforms-2/files-2.1/5d04bb4852dc27334fe36f129faf6500/res/values/va

2021-12-22 19:03:17 3258

原创 1.MongoDB介绍及安装

NoSQL 全称为 Not Only SQL,是一种相对较新的数据库设计方式。传统的关系模型使用的是固定模式,并将数据分割到各个表中。 然而,对于大数据集的情况,数据量太大使其难以存放在单一服务器中,此时就需要扩展到多台服务器。 不过,关系模型对于这种扩展的支持并不够好,因为在查询多个表时,数据可能在不同的服务器中。相反 , NoSQL 数据库通常是无模式的 ,从设计之初就考虑了跨服务器无...

2019-06-25 00:08:33 163

原创 JVM内存分配机制与回收策略选择-JVM学习笔记(2)

Java体系中的自动内存管理主要包括了2个方面:自动地给对象分配内存。自动地回收分配给对象地内存。本文也围绕这两个点展开一. 内存分配规则1.优先在Eden区分配大多数情况下,JVM会在 Eden 区优先分配对象,如果 Eden 没有足够的空间,则进行一次 Minor GC 。通过参数 -XX:+PrintGCDetails 可以让虚拟机在进行垃圾回收时打印日志,方便我们...

2019-06-24 20:31:58 141

原创 Ubuntu 切换JDK版本

终端执行sudo update-alternatives --config java即可显示我们现在有哪些jdk版本假如我们在 /opt/jdk1.8.0_211 这里 有其他版本的JDK,可以把这个jdk也作为一个设置项添加到选择列表中sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_211/bin...

2019-06-19 10:16:11 4385

原创 Android Studio :ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could

报错描述如图,在网上找了好久都没有找到解决办法,烦的一p,都说是 http proxy 的问题,试了也没用。Unable to resolve dependency for ‘:app@debug/compileClasspath’: Could not resolve com.android.support:appcompat-v7:28.0.0.Open FileShow Detail...

2019-06-18 00:02:23 2317 2

原创 对象回收判定与垃圾回收算法-JVM学习笔记(1)

本章要探究的问题 :GC在回收内存时 :怎么判断哪些内存需要回收 ?什么时候回收?在几个线程私有的运行时区域:虚拟机栈程序计数器本地方法栈它们的内存分配和回收大多都具有确定性,随着线程的创建而产生,随着线程的停止而被回收。栈帧中的内存大小基本在类的结构确定下来时就已知。而在线程共有的 Java堆(Heap) 和 方法区(Class(Method) Area) 这两个区域...

2019-06-17 17:56:57 336 1

原创 Ubuntu18.04 安装VSCode

下载 VSCode deb 安装包双击下载的deb包点击 安装 安装成功

2019-06-17 00:44:38 8175

原创 Ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法

解决:sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock

2019-06-17 00:07:03 1022 1

原创 Ubuntu su:Authentication failure 解决

问题描述:执行 su时 遇到报错解决:sudo passwd root接着按着提示输入密码就OK了再次执行 su 就可以进去了

2019-06-17 00:03:10 325

原创 Android学习笔记15-从源码分析Activity的创建过程

Android学习笔记15-从源码分析Activity的创建过程文章目录Android学习笔记15-从源码分析Activity的创建过程问题一 , Activty概述:二 , Activity的工作过程1.从参数 `AcitivityClientRecord` 对象中获取待启动的 Activity 的信息:2.通过 _Instrumentation.newActivity()_方法使用类加载器...

2019-06-05 13:28:53 181

原创 AndroidStudio-adb start-server报错

报错信息:adb server version doesn’t match this client ;killing…could not read ok from ADB Server * failed to start daemon error: cannot connect to daemon 解决方法 :重启电脑(亲测有效)...

2019-05-26 21:45:41 351 1

原创 Anaconda 常用命令总结

包管理安装包conda install xxx(包名)卸载包conda remove xxx(包名)安装/移除指定版本的包conda install xxx=1.2.0conda remove xxx=1.2.0在指定的环境中 安装/移除包conda install -n env-name(环境名) pack_name(包名)conda remove -n...

2019-05-23 20:45:18 929

原创 Windows +Anacoda 环境 安装 tensorflow

1. 关闭防火墙conda config --set ssl_verify no2. 安装tensorflow环境conda create -n tensorflow python=3.53. 遇到了报错 twisted 18.7.0 requires PyHamcrest >= 1.9.0, which is not installed可能是缺少这个包,安装这个包con...

2019-05-23 20:34:59 245

原创 Android学习笔记14-从源码分析Toast的创建过程

Toast.show()显示一个Toast只需要调用它的show()方法,看一下源码/**109 * Show the view for the specified duration.110 */111 public void show() {112 if (mNextView == null) {113 throw new ...

2019-05-13 01:37:44 204

原创 Android学习笔记13-Acitivty与Fragment通信

1,概述首先,如果要实现Activity与其他的Fragment之间实现通信,那么这个Fragment需要拥有一个独立的Layout文件,以便重用,并且以代码添加的方式出现在Activity中。这么做的好处在于我们可以把相关的业务逻辑写在这个Fragment中,减少它所依附的Activity中的代码。在官方文档中,建议我们在实现Fragment与其他Activity/Fragment通信的时...

2019-05-10 00:22:48 190

原创 解决No toolchains found in the NDK toolchains folder for ABI with prefix mipsel-linux-android报错

解决方案 :点击AS上方的 Project Structure 图标找到NDK 路径 并复制 :打开WINDOWS 文件管理 粘贴我们刚刚复制的路径在这个目录下打开命令行工具 ,执行一下命令 :ln -s arm-linux-androideabi-4.9 mips64el-linux-android最后再 Try again,OK...

2019-05-08 19:35:09 307

原创 Android-记一次阿里的电话面试

本人Android小菜鸡,抱着想要体验一下面试的心态,一个月前投了阿里的实习。不过这处理速度确实有点慢,今天才打电话,说要进行电话一面。在此记录一下面试经过。面试官:请做一下自我介绍我:你好,我是……现在在学校网络中心负责Android开发。(正常介绍就完事)面试官 : 你做过的这些项目中 , 哪一个是最有成就感的?我: …(想了想Crossword做的最多,就说了说Crossword是...

2019-04-29 20:38:16 1490

原创 Android消息机制全面解析(Handler,MessageQueue,Looper,Threadlocal)

文章目录(1),Android消息机制概述问题 : 大家都知道只有在UI线程才能对UI元素进行操作,在子线程更改UI就会报错,为什么?问题 : 那为什么不通过对访问UI控件的子线程加上锁机制呢 ?(2),ThreadLocal 工作原理1, 什么是ThreadLocal?2,ThreadLocal的实现原理3,ThreadLocal的使用场景场景1:场景2:(3),MessageQueue的工作...

2019-04-28 18:01:24 227

原创 LinkedList解析

1.基本特性:基于List接口,以双向链表的形式实现在插入/删除 性能上 优于 ArrayList, 在随机访问 上 差于 ArrayList允许所有元素为NULL实现Deque接口,可以基于LinkedList 进行堆栈,双端队列操作线程不安全,若有需要,可以使用 Collections.synchronizedList()方法进行转换成线程安全的支持序列化,实现了Serial...

2019-04-21 17:25:08 302

原创 ArrayList 解析

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable基本属性基于数组实现支持快速随机访问数组默认大小为10private static fina...

2019-04-18 23:38:46 198

原创 Android图片加载那些事(二)-子线程中更新Adapter

前言项目遇到的需求:已有一个动态增长的图片列表,需要实现加载这个列表中的图片到手机屏幕.难点在于:图片列表是动态增长的,所以需要我们有一个线程能够一直监听这个列表的变化,得到图片列表新增加了哪些图片,然后再把新增加的图片加载到页面上.这里就涉及到子线程中更改UI的问题,当然子线程是不能更改UI元素的,所以需要配合Handler.其实也可以使用AsyncTask或者RxJava,Async...

2019-04-15 00:41:41 1456 2

原创 Android图片加载那些事(一)-实现加载手机中的所有图片

前言最近实验室的项目需要实现–在手机与单反的wifi连接之后,加载单反中的图片.这其中就涉及到我们在Android开发中经常遇到的功能-图片加载.关于图片加载,不同程度的实现也会遇到不同程度的问题可能起初我们只是想加载出来一张图片,这个问题很好解决.后来我们可能还要加载大量的图片(几百KB的那种)到页面上,这个也不是很难…但是如果想要优雅的做好符合用户体验的图片加载,如何做好缓存.下拉刷...

2019-04-14 22:54:04 880 3

原创 Android 实现自定义View能够随手全屏自由拖动

先上效果图,view是我自己通过继承View类随便画的.关键代码,在view中重写onTouchEvent方法:/** * 让view能够随手自由拖动 * @param event * @return */ @Override public boolean onTouchEvent(MotionEvent event) { ...

2019-03-31 22:00:26 1199

原创 Android View中MotionEvent的getRawX()与getX()区别以及View的坐标参数

getX():触摸点到当前View左边缘的距离.getRawX():触摸点到屏幕左边缘的距离.View的各个参数以下所有参数都有get/set方法,getTop(),getLeft()…getX()…top : View左上角的纵坐标left: View左上角的横坐标right : View右下角的横坐标bottom : View右下角的纵坐标View一旦完成绘制到屏幕...

2019-03-31 16:31:10 1019

原创 编译原理总结-第二章 :高级语言及其语法描述

2019-03-25 19:27:47 282

原创 编译原理总结-第一章:引论

什么是编译程序 编译器是一种翻译程序,它用于将源语言(即用某种程序设计语言写成的)程序翻译为目标语言(即用二进制数表示的伪机器代码写成的)程序。 翻译程序的两种方式 编译 :同上 解释 : 以该语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。 编译程序的五个阶段 : 第一阶段 : 词法分析, 输入源程序,对构成源程序的字符串进行扫描和分解,识...

2019-03-25 19:24:28 285

原创 Java学习日记(网络篇)-1.IP地址编程

今天开始正式进入Java网络编程(Socket编程)的学习,Socket编程在Java中属于比较重要的一个环节,涉及到计算机网络知识。由于没怎么学习过计算机网络,而且我的专业也没有开设这个课程,所以只能自己慢慢找相关的文章学一学。像TCP/IP,Http协议都是必须要懂的内容。从今天开始,会一步步记录Java网络编程的学习过程。加油~(一) 概念 :1. IP地址 : IP地址是给...

2019-03-25 11:42:22 238

原创 踩坑日记-Layout_width,Layout_height不起作用

Layout_width,Layout_height这两个参数设置View在布局中的长宽的,这个View必须存在于一个父布局中,这两个参数才会有效。比如我们设置页面布局只有一个button发现我们我设置的layout_height,layout_width没有作用所以 如果页面的xml布局中只有这一个View的话,它的Layout_width,Layout_height参数是不起作用的。...

2019-03-23 15:18:27 1469 1

原创 使用Aidl时 报错 \aidl.exe'' finished with non-zero exit value 1 解决

使用Aidl时 报错 \aidl.exe’’ finished with non-zero exit value 1 解决正在学习aidl的时候遇到了错误,记录一下当我们使用aidl时需要用到自定义的对象时,比如我这里需要传入Book类必须要注意Book类和Book.aidl的包名保持一致,我这里就是因为没有保持一致,Book类上多了一个文件夹AIDLTest导致Book.aidl的包...

2019-03-15 22:44:57 2946 1

原创 Android 线程池使用总结

Android 线程池使用总结1,为什么使用线程池在Java中,当我们想实现多线程程序的时候,通常会使用new 一个Thread来创建线程处理任务。如 :new Thread(new Runnable() { @Override public void run() { //do sth . ...

2019-03-07 00:14:08 503

原创 JavaWeb学习-Spring中的Bean使用总结

JavaWeb学习-Spring中的Bean的总结时间临近期末,写一篇文章用来整理spring中的知识点用于整理思路和复习。文章目录JavaWeb学习-Spring中的Bean的总结(一)Bean的配置(二)Bean的作用域(三) Spring容器中Bean的生命周期(四)Bean的装配方式1.基于XML的装配方式 (Setter注入和构造方法注入)Setter注入构造函数注入2. 基于...

2018-12-30 16:46:17 770

转载 markdown语法总结

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2018-12-30 16:43:47 125

原创 Oracle 用jdbc插入日期

Oracle 用jdbc插入日期首先这是我们的表CREATE or replace TABLE dinnerTable( id number PRIMARY KEY , -- 餐桌主键 tableName VARCHAR(20), -- 餐桌名 tableStatus number DEFAULT 0, -- 餐桌状态:0,空闲; 1,预定...

2018-12-22 10:40:18 2437

原创 Oracle 实现表中id字段自增长

Oracle 实现表中id字段自增长最近正在学习Oracle的时候发现Oracle表中的字段不能像mysql中那样可以用auto increment修饰字段从而让id这种主键字段实现自增长.那Oracle中是怎么实现字段自增长呢?1. 首先创建一个表-- 1. 餐桌表CREATE or replace TABLE dinnerTable( id number PRIMARY KE...

2018-12-22 10:31:32 1646

原创 所有HTTP的响应状态码

所有HTTP的响应状态码1XX: 被请求接收到,继续处理100 :继续101 :转换协议2XX: 被成功接收200 : OK,接收成功201 : 乙创建202 : 接受203 : 非权威消息204 : 无内容205 : 重置内容206 : 部分内容3XX: 重发,为了完成请求必须完成下一步动作301 : 永久移动302 : 发现303 : 见其他3...

2018-12-05 12:39:58 551

原创 android:visibility的VISIABLE,INVISIABLE,GONE的区别

View.VISIALBE 可见,显示到页面View.INVISIABLE 不可见,但是还是占用位置View.GONE 隐藏,不可见并且不占用位置

2018-12-02 17:54:44 6656 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除