安装Ubuntu虚拟机

1.下载安装VMware 2.一个国产Ubuntu的镜像下载:https://dl.iplaysoft.com/files/4718.html 3.开启终端:Ctrl+Alt+T  
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

Android 的7种CPU架构

目前android支持如下7中CPU架构: armeabi 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢(只支持armeabi) armeabi-v7a 第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能(支持 armeabi 和 armeabi-v7a,目前大部分手机都是这个架构) arm64-v8a 第8代,64位,包含AArch32、AArch...
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

1.Android多线程下操作sqlite数据库

当你在多线程中只使用一个SQLiteDatabase的引用时,需要格外注意你SQLiteDataBase.close()调用的时机,因为你是使用的同一个引用,比如在一个线程中当一个Add操作结束后立刻关闭了数据库连接,而另一个现场中正准备执行查询操作,但此时db已经被关闭了,然后就会报异常错误。此时一般有三种解决方案, ①简单粗暴给所有的CRUD添加一个 synchronized关键字; ②永...
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

px,sp,dp相互转换

dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度...
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

即便太晚我也会开始,Because I still can.

坐标定位深圳龙岗马蹄山。 一晃毕业已经3年多了。我也快25岁了。依然傻傻的很天真,连女朋友都没有,基本就是处于从社会孤立的状态。 一期的同学买车的买车,买房的买房,读研的,考博的。。。 可是自己现在还在一家小公司里做Android,而且就我一个人,需求,美工,开发各种东西都要自己一个人搞定。。。活的不如那 个啥。 昨天和大学班里的几个一起玩耍的同学调侃:“有种想哭的冲动,发现自己7年时间...
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

CSDN如何转载他人的博文用于学习

实现   因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑)。   我们首先打开要转载的博客,然后鼠标右键就会出现下面的菜单:   我们点击【审查元素】,就会出现当前HTML页面的代码,如下:   我们选中“article_content”从图片左边我们也可以看到,博客的内容已经被我们选中了,也就是我们想要转...
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

ConstraintLayout详解

本篇文章的主题是ConstraintLayout。其实ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上重点宣传的一个功能。我们都知道,在传统的Android开发当中,界面基本都是靠编写XML代码完成的,虽然Android Studio也支持可视化的方式来编写界面,但是操作起来并不方便,我也一直都不推荐使用可视化的方式来...
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

自定义View和自定义ViewGroup一步到位

1.自定义View 首先我们要明白,为什么要自定义View?主要是Android系统内置的View无法实现我们的需求,我们需要针对我们的业务需求定制我们想要的View。自定义View我们大部分时候只需重写两个函数:onMeasure()、onDraw()。onMeasure负责对当前View的尺寸进行测量,onDraw负责把当前这个View绘制出来。当然了,你还得写至少写2个构造函数: p...
分类: 移动开发 发布时间: 09-30 13:37 阅读次数: 0

Android的Handler部分原理的解析

前言 Handler是Android应用开发中最常用的线程间通信类,在Android应用开发甚至整个应用的运行中都有非常重要的重要。所以理解Handler的实现原理,是很有必要的一件事情。本文,会从Handler、Looper、MessageQueue等关键类的源码,分析Handler的主要原理。 一、Android的消息机制Handler Android的消息机制主要是指H
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

Android的自定义View深入解析

前言 自定义View是每个Android开发人员,都必备的技能。当SDK提供的常规控件如TextView、Button等没法满足我们日常开发需求时候,就需要我们进行View的自定义。本文就从View的绘制过程、自定义View的分类、自定义View的自定义属性、Canvas的简单使用、View的事件分发体系、View的滑动冲突等几个方面,简单讲解一下,如何自定义一个我们想要的View。
分类: 其他 发布时间: 09-30 13:37 阅读次数: 0

okhttp、okio添加参数(addParams)出现的java.lang.IllegalArgumentException:Unexpected code point

这是我们项目,收集到的,用户出现过不少次的一个问题。根据堆栈发现是出现在用户修改自己的个人资料时出现的。 项目的网络框架用的是okhttp,在bugly上的样子如下图 "> 查看堆栈信息,找到抛出这个异常的地方,在okhttp的okio这个jar包的Buffer类中,的writeUtf8CodePoint()这个方法中 "> Buffer类的源码如下 @Override publi
分类: 其他 发布时间: 09-30 13:36 阅读次数: 0

由FragmentTabHost导致的Can not perform this action after onSaveInstanceState异常

这是开发中,用户反馈很多的一个exception。主要是Fragment的commit和commitAllowingStateLoss的问题,出现这种问题的原因很多,本次主要因为FragmentTabHost导致的该bug的发生 "> 完全没有,我们应用的我们熟悉的那些类的堆栈信息 ">     是不是,有种无从下手的感觉,因为没有我们自己写的类的信息,那我们需要从异常发生的地方,
分类: 其他 发布时间: 09-30 13:36 阅读次数: 0

SurfaceView的nativeUnlockCanvasAndPost 导致的没有任何错误信息的IllegalArgumentException

最近项目里面使用到了surfaceView,在子线程中进行页面绘制,但是出现了一个莫名其妙的bug,该Exception,没有什么信息,无从判断是什么原因导致的 "> 所以,需要我们去看看为什么会导致这样的问题,我们的代码是如下 if (mSurfaceHolder != null) { mCanvas = mSurfaceHolder.loc
分类: 其他 发布时间: 09-30 13:36 阅读次数: 0

算法(一)排序算法(桶排序、冒泡排序、快速排序)

前言这些一个系列的文章,主要是自己学习算法和数据结构的一些笔记整理。从最简单开始,一步步深入,都是自己学习过程中的领悟。对于程序猿而言,算法和数据结构就像一门强大的内功,练的过程中,会比较难,相对于武学招式,需要更多的理解能力和悟性,但是一旦练成,那就能变身强大的武林高手,纵横武林,不再是梦想。本系列武林秘籍主要来自于个人学习《啊哈!算法》《算法导论》这两个算法的入门级书籍。所以,高手就不喜勿喷啦...
分类: 其他 发布时间: 09-30 13:35 阅读次数: 0

算法(二)枚举算法(穷举法)之火柴棍等式

前言这是本系列的第二篇文章,从名字就可以看出,将要学习穷举算法,也叫枚举法,噫,有同学可能就要问了,穷举也算算法吗?当然算啦,别拿豆包不当干粮,拿乞丐不当江湖中人,事实上,江湖上很多鼎鼎有名的高手,就来自于天下第一大帮,丐帮。所以,枚举其实也是一种算法思想。现在我们就来学习神功的第二层,枚举算法实际需求也就是火柴等式,比如 1 + 1 = 2,其中1是两根,+号是两根,=号是两根,2是5根火柴。那...
分类: 其他 发布时间: 09-30 13:35 阅读次数: 0

算法(三)搜索算法(一)(深度优先搜索)之地图迷宫

前言前面两篇文章,只是讲了一下算法的入门,排序算法和枚举算法,大家是不是觉得很简单呢?那么这篇文章,我们就有学习一下,稍微有点难度的,也是面试、笔试经常见到的深度优先搜索。而常见的搜索算法就有,上篇文章中所介绍的穷举算法、以及本篇将要介绍的深度优先搜索,以及暂时不会介绍的A*算法、回溯算法、混沌搜索等,当然最高深的搜索算法,就是百度和google的看家本领了。那就不是我们现在能够理解的范围了,他们...
分类: 其他 发布时间: 09-30 13:35 阅读次数: 0

算法(四)搜索算法(二)(广度优先搜索)

前言在上一篇博客中,我们学习了搜索算法的第一种:深度优先搜索,这篇博客就让我们一起来学习另一种大家都经常听见的搜索算法:广度优先搜索。看名字就知道,他们两者之间肯定有什么不可告人的秘密。广度优先搜索,又叫宽度优先搜索,英文名:Breadth First Search。属于一种盲目搜寻方法,目的是系统的展开并且搜索图中所有的点,以找寻结果。我们还是以上篇博客后面提到的那个迷宫地图的问题来详细介绍一下...
分类: 其他 发布时间: 09-30 13:35 阅读次数: 0

算法(五)最短路径之Floyed-Warshall算法

前言算法中的最短路径问题,是一个经典的算法问题。旨在寻找图(由顶点和边组成)中顶点到顶点间的最短路径。而我们接下来的几篇文章就会一起学习最短路径问题中常用的Floyed-Warshall、Dijkstra、Bellman-Ford以及Bellman-Ford的队列优化这四种算法。这些最短路径的算法在实际运用中也有不可忽视的作用。接下来,我们就来学习一下Floyed-Warshall算法。具体问题在...
分类: 其他 发布时间: 09-30 13:34 阅读次数: 0

算法(六)最短路径之Dijkstra算法

前言在上一篇博客中,我们学习了最短路径系列的第一种算法Floyd-Warshall算法来求解图中点与点之间的最短路径的问题。这篇博客我们就要来学习一下,求解单源最短路径的一种算法:Dijkstra算法。具体问题还是几个城市间的最短路径问题,这次我们需要求的是1号顶点到其余个点的最短路径。路径图如下现在我们需要求解1号点到2、3、4、5、6号点的最短路径。Dijkstra算法          图的...
分类: 其他 发布时间: 09-30 13:34 阅读次数: 0

android使用CMake进行jni编写遇到的一些问题

前言          android studio 2.2之后出的CMake 让jni的编写方便了很多,使用CMake让我们不在烦恼函数的定义,以前我们需要通过javah命令生成,jni规定的函数名,现在不需要了。他也让我们可以很方便的编写c/c++代码,自动打成so。总体来说,让我们的jni编写变得更简单。但是网上关于CMake的使用翻来覆去也就是官网的那些。所以我就记录一下自己在使用CMa
分类: 其他 发布时间: 09-30 13:34 阅读次数: 0