自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 声明式UI是否会成为Android开发的主流?

从Windows到Web,到Android,到iOS,我们编写应用 (App) 最初的方式都是命令式的 (Imperative Style) 。但随着声明式 (Declarative Style) 的出现,情况正在发生极速的变化。

2022-06-21 14:01:16 1062 1

原创 一文让你了解Java的可见性与原子性

多线程是java里比较复杂的一个技术,多线程有2个重要的概念:可见性与原子性。因为线程是有缓存的,它里面对象的值可能会与主存里的不一样。这样就会导致一个问题:线程用的不是最新的值,从而导致错误。可见性是指同一个对象在不同的线程之间表现一致,具有相同的值。怎么实现可见性呢?线程在读一个变量的时候,先去主存把值同步过来,在写一个变量的时候,把新值同步到主存,这样可以保证各个线程用的都是最新的值...

2019-12-04 11:57:26 565

原创 一种统一外部流量入口的设计(Android)

Android系统提供了Deep Link和App Links技术来让外部应用直接打开自己应用内的页面。根据Google官方文档,一个典型的Deep Link入口声明如下:<activity android:name="com.example.android.GizmosActivity" android:label="@string/title_gizmos" &gt...

2019-10-21 16:06:55 266

原创 Android App Links autoVerify问题排查

这两天在给我们的app设计一个统一的外部流量入口,用了Android App Links技术(iOS是Universal Links)。入口Activity加好了,intent-filter也按照Google官方文档设置好了,但在测试时却仍然会弹出选择框,让用户选择用哪个app打开,仍然停留在deep link层面。解决这个问题花了我一些时间,这里总结一下,希望能让大家少走弯路。选择框里有...

2019-10-15 15:22:52 3629 3

原创 Flutter的响应式编程

我们可能都听说过响应式编程这个名词,但什么是响应式编程呢?我们先看看维基百科上的定义:这里面有很多的名词,像declarative programming paradigm(声明式编程范式),imperative programming paradigm(指令式编程范式),data stream(数据流),propagation of change(变化的传播,很多文章翻译成传播变化,在没...

2019-09-05 21:00:26 1310

原创 理解Flutter的key

Flutter的所有Widget的构造函数都有一个optional的Key参数,你可以指定,也可以不指定。在用Flutter进行开发时,大多数情况下,我们并不需要为widget指定key。但今天我却碰到了一个由key引发的问题。我有一个ListView,我要让用户可以删掉其中的任何item。当我将某个数据从数组中删掉,然后setState时,发现列表没有变化。因为之前有写过一点Re...

2019-09-05 17:11:50 1470 1

原创 ExceptionInInitializerError与NoClassDefFoundError

今天写代码碰到了一个NoClassDefFoundError异常导致的crash,一开始不解,明明有这个类,为什么还找不到这个类的定义呢?于是找到这个类的官方文档:文档也只是说找不到类的定义,并没有找到有用的信息。接着看ExceptionInInitializerError这个异常:看文档知道是类的静态块或者静态变量初始化时出了问题,导致抛这个异常。接着往下看打印出的s...

2019-09-03 21:11:34 777

原创 Android:在onTouch里实现onClick的坑

前段时间做了个需求,一个200 * 200的view要可以被拖动,点击也可以跳转。拖动的实现很自然的想到了监听view的touch事件,在move的时候设置view的位置,代码大概如下:mDraggableView.setOnTouchListener(new View.OnTouchListener() { float dX; float d...

2019-08-19 11:33:16 553

原创 如何解决Android Studio编译时报的duplicate class这类问题

序前段时间做一个需求,因为要做复杂的动画,所以选择了Airbnb的lottie动画框架。但在引入lottie的过程中碰到了一个重复类(duplicate class)的编译错误,解决这个问题花了我一些时间,这里将其归纳为一类问题,并说明一下解决的方法。重现问题我新建一个Android应用来重现这个问题(操作系统为macOS 10.13.6):1、用Android Studio...

2019-07-30 21:05:41 48032 5

原创 从2019 Google I/O大会看深度学习的发展与应用

周末看了一下5月7号举行的2019 Google I/O大会。整场大会基本围绕Google Search,Google Lens,Google Go,Duplex,Google Assistant,Federated Learning,Android Q,Nest Hub Max,Pixel手机,Google AI这些产品或技术进行。贯穿整个大会的有两条主线,一个是机器学习(或者说深度学习)的发展...

2019-05-28 12:48:58 299

原创 怎样理解TensorFlow中的Tensor?

Tensor翻译成中文是“张量”,在数学和物理学中运用较多,那么TensorFlow中的Tensor到底是什么呢?

2017-07-04 20:49:28 4322

原创 AlexNet解析

这一波的深度学习浪潮源自2012年ImageNet比赛冠军所用的深度卷积神经网络(AlexNet),这篇文章就来解读一下这个网络。2012年,Alex Krizhevsky及其同学Ilya Sutskever在多伦多大学Geoff Hinton的实验室设计了一个深层的卷积神经网络,夺得了2012年ImageNet LSVRC的冠军,且准确率远超第二名(top5 error rate 1

2017-06-09 16:48:11 4495

原创 用TensorFlow构造CNN进行手写数字识别

在前两篇文章中,分别用Softmax回归和普通的3层神经网络在MNIST上进行了手写数字的识别。这两种方法都是将图片转换成一维的数组进行处理,没有考虑图片的二维结构信息,所以准确率都还不够高。在这篇文章中,我们将用提取了图片二维结构信息的卷积神经网络(Convolutional Neural Network, CNN)来进行手写数字的识别。普通的神经网络是Fully Connected N

2017-06-03 20:26:04 10319

原创 用最简单的神经网络识别手写数字

在上一篇文章中我们用Softmax Regression进行了手写数字的识别,精度达到了92%,非常的鼓舞人心。现在让我们进入神经网络的世界,用一个最简单的神经网络来进行手写数字的识别,数据集还是选择MNIST。因为图片的大小是28 * 28像素,所以需要784个输入神经元。输出是0~9这10个数字,所以用10个神经元作为output layer。既然是最简单的神经网络,那我们就只用1层的hi

2017-06-03 20:21:57 1155

原创 用TensorFlow的Softmax Regression进行手写数字识别

对于人类来说,识别手写的数字是一件非常容易的事情。我们甚至不用思考,就可以看出下面的数字分别是5,0,4,1。但是想让机器识别这些数字,则要困难得多。如果让你用传统的编程语言(如Java)写一个程序去识别这些形态各异的数字,你会怎么写?写很多方法去检测横、竖、圆这些基本形状,然后计算它们的相对位置?我想你很快就会陷入绝望之中。即使你花很多时间写出来了程序,精确度也一定不高。

2017-06-03 20:17:26 771

原创 用TensorFlow解决线性回归问题

我们都很关心房价,对于一套房子,它到底值多少钱呢?我们能否建立一个模型来测算一套房子的价格?影响房子价格的因素比较多,如面积、地理位置、朝向、楼层、学位等。为了简化问题,我们暂且只考虑面积因素。我们到链家上找一些数据,下表是后海宝能太古城的面积与价格数据:面积(平米)价格(万)4344846500475205962

2017-06-03 13:51:36 2186

原创 关于对象序列化

在开发Android应用时,我们经常需要将数据进行持久化。对于少量的数据,Android提供了轻量的,以XML格式文件保存的SharedPreferences工具。对于大量的,且需要进行增删改查操作的数据,Android则提供了SQLite数据库。有时,我们希望对内存里的某些结构体数据(比如某个类的实例、ArrayList等)进行持久化,这时,使用SharedPreferences则过于繁琐,而使

2015-04-21 20:17:43 357

原创 Android系统上可以在子线程修改UI吗

一个简单的问题:在Android系统上,我们可以在子线程修改UI吗?假设我们现在不知道,我们写个demo试一下。代码如下:demo 1:public class MainActivity extends Activity {private TextView mTextView;private Button mButton;@Overrideprotected v

2015-04-16 11:08:37 838

原创 快速排序

快速排序算法由Charles Antony Richard Hoare(又称Tony Hoare 或 C. A. R. Hoare)于1962年提出,文章发表在Computer Journal上。C. A. R. Hoare 1934年1月11日出生于锡兰(现斯里兰卡)科伦坡。同时他还提出了Hoare逻辑(用于验证程序的正确性)和一种形式化语言CSP(Communicating Seq

2012-02-25 17:27:26 290

Linux入门教程 来自红联的经典作品

一本Linux的入门教材,包括网络的配置,MSN、QQ的安装等

2008-12-09

空空如也

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

TA关注的人

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