- 博客(23)
- 资源 (15)
- 收藏
- 关注
原创 Android ListView 多种布局--初步
提出问题先看下面这个ListView该如何实现上面这个需求?解决问题我们知道ListView数据绑定类BaseAdapter有个getItemViewType,这个方法完全满足上面的要求,下面写个简单的Demo实现上面的需求。定义主UI R.layout.activity_listview_type<?xml version="1.0" encoding="utf-8"?><LinearLay
2015-06-29 23:15:07 1771
原创 Handler 详解
这个详解基本小结了Handler的使用和相关的知识,在了解这些知识前,我们先来看看这些问题.Handler 是什么?子线程更新UI有几种典型方式,这些方式本质上是什么样的?子线程真的不能更新UI吗?HandlerThread是什么?主线程和子线程之间如何相互通信?好了,如果上面的问题,你能对答如流,并且深知其中的原理那么没有必要继续看下去了,反之,就该好好补补了(^o^)/~。Handle
2015-06-22 13:41:55 6728 2
原创 Android 坐标常识
大部分Android开发人员都对View的坐标感到有点迷茫,尤其是初学自定义View的同学,这里博主和同学们一起来学习一下自定义View开发中用到的必不可少的Android坐标问题:View 坐标废话少说,先上图:上面这个图就是Android的系统坐标,它和笛卡尔坐标Y轴方向正好是反的,而X轴方向相同,当屏幕内容显示不下的时候,会超出一屏,于是就出现了ScrollView,在该类的父类View中有个
2015-06-14 22:29:56 1203
原创 Android 获取View的高度和宽度
View宽高值为什么是0如果我们想获取View的高度和宽度,通过在onCreate()或者onStart()或者onResume()等生命周期中直接获取,像下面这样处理会获取到View的高度吗?package com.wjj.imagepull;import android.app.Activity;import android.os.Bundle;import android.util.Log
2015-06-14 15:43:31 2122
原创 Java 并发编程框架(一)
Java 并发编程框架(一)在Java1.5之前,编写多线程并非易事,那么编写多线程为啥不想想象的那么简单,为什么需要线程池?先来回答这个问题。Why Thread Pool在Java中,如果每当一个请求到达就创建一个新线程,开销是相当大的。在实际使用中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在实际处理实际的用户请求的时间和资源要多的多。除了创建和销毁
2015-06-02 10:42:38 997
原创 Java 排序算法
Java 排序算法在讨论排序算法之前,先来看一个问题:从根目录查找某个文件,要用非递归的方式 (为神马不用递归方式?),下面给出程序截图: 图片来自博客:http://blog.csdn.net/wangchun8926/article/details/8680219接下来我们不打算详细的讨论典型的排序算法,比如快速排序、归并排序、堆排序、插入排序、冒泡排序等等,对于这些排序算法已经有很好的博客可
2015-06-02 10:42:29 747
原创 Java 并发编程框架(二)
Java 并发编程框架(二)在基本了解了并发线程的主要类以后(如果你对这些类没有基本的概念,请阅读Java 并发编程框架(一)) 这篇文章会对前一篇文章提及的主要类做进一步说明CompletionServiceCompletionService究竟是什么,如果一开始很难理解它,那么我们可以通过一个Demo来模仿一下ExecutorCompletionService这个实现类Case.Java 测试
2015-06-02 10:41:43 663
转载 Java 序列化
Java 序列化标记接口 public interface Serializable{}正如你看到的,序列化就是这么简单,这个简单的外观,却隐藏着巨大的知识点什么是序列化Java的”对象序列化”能让你将一个实现了Serializable接口的对象转换成byte流,这样日后要用这个对象时候,你就能把这些byte数据恢复出来,并据此重新构建那个对象了。为什么要序列化简单说就是为了保存在内存中的各种对象的
2015-06-02 10:40:02 541
转载 JavaScript 闭包初步
JavaScript 闭包初步内部类我们先从一个基本的内部类开始function outerFn() { document.write("Outer function<br/>"); function innerFn() { document.write("Inner function<br/>"); }}假如我们想在outerFn()外调用innerFn(
2015-06-02 10:38:35 511
原创 String 算法
String 算法题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int i = 0; char* str = "abaccdeff"; int ch[25
2015-06-02 10:35:01 624
转载 树的层序遍历
树的层序遍历我们先来看一下这道面试题目二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};从上到下打印二叉树的规律: 每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末
2015-06-02 10:34:18 645
翻译 Android 代码优化
Android 代码优化有这样一个话题在 StackOverflow: 上提起过: What is the best way to retain active objects—such as running Threads, Sockets, and AsyncTasks—across device configuration changes?简单的说: AnsyncTask & Socket
2015-06-01 21:34:42 704
原创 Android BroadCast (一)
Android BroadCast (一)我们先来看看网络上对BroadCast较为普遍的看法:到底怎么看待BroadCast 如果需要完成一项比较耗时的工作 , 应该通过发送 Intent 给 Service, 由 Service 来完成 . 这里不能使用子线程来解决 , 因为 BroadcastReceiver 的生命周期很短 , 子线程可能还没有结束 BroadcastReceiv
2015-06-01 21:29:20 510
原创 Android BroadCast (二)
Android BroadCast (二)Android BroadCast (一) 揭开了关于BroadCast网络上普遍的误解,这里进一步对BroadCast发送的两种方式做基本的介绍:Application”广域网”广播先看代码:getActivity().sendBroadcast(new Intent("Action")); 假如这个是在Fragment中的一处代码,我们顺着这个代码
2015-06-01 21:27:04 566
翻译 Android 序列化比对
Android 序列化比对 在Android中使用序列化,无非两种途经: Parcelable 和 Serializable两者区别Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Androi
2015-06-01 21:26:42 705
转载 Android 进程间通信IPC_AIDL
Android 进程间通信IPC_AIDLAIDL概念 AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以
2015-06-01 21:26:06 522
原创 Android 启动模式
Android 启动模式首先我们来认识一下App和进程的关系 众所周知,Android下有四大组件:Activity、Service、Receiver、ContentProvider。一般开发一个应用程序,会包含多个Android组件,所以应用程序是一组组件的集合,而进程则是运行这些组件的载体。由上面的描述,我们知道,App仅仅是静态的概念,它把Android的四大组件打包在一起,而事实上Ap
2015-06-01 21:24:15 772
原创 Android View 分析(上)
Android View 分析(上)Set ContentView做Android开发,在Activity中最熟悉的莫过于这么一个方法:@Overridepublic void onActivityCreated(Bundle savedInstanceState){ setContentView(R.layout.activity_main);}不妨追踪setContentView下
2015-06-01 21:19:22 735
原创 Android View 分析(中)
Android View 分析(中)ViewRootImpl.setView(…)我们接着Android View 分析(上)继续分析,首先分析 setView(...) 这个方法。/** * We have one child */public void setView(View view, WindowManager.LayoutParams attrs, View panelParent
2015-06-01 21:18:27 501
转载 Android View 分析(下)
Android View 分析(下)本文接着 Android View 分析(中)继续分析ViewRootImpl.performTraversals(…)这个成员方法比较出名,也比较庞大,初看可能会迷失方向,所以我们先给出这个方法的执行路径图:再看一下牛逼的源代码 private void performTraversals() { // cache mView since it
2015-06-01 21:18:18 657
原创 Android Service
Android ServiceService啥也不说直接上代码public class AppService extends Service{ private static final String TAG = "ExampleService"; private final AppBinder mAppBinder = new AppService.AppBinder();
2015-06-01 21:07:49 475
转载 Android Socket
Android Socket客户端编程步骤:1: 创建客户端套接字(指定服务器端IP地址与端口号) 2: 连接(Android 创建Socket时会自动连接) 3: 与服务器端进行通信 4: 关闭套接字 客户端先建立连接后先获得输出流,然后再获得输入流。不然活有EOFException的异常。 中间的管道连接是通过InputStream/OutputStream流实现的。
2015-06-01 21:07:26 469
原创 Intent Filters
Intent Filters先来看一下Google 官方文档关于intent-filter的说明 或者 intent 的官方说明 看完上面的官方文档,我们来回答几个问题:intent-filter这厮是干什么的它包含哪些ID这些ID哪些是必须申明的,哪些是不必声明的这些ID具体是干什么的好了,看完上面的官方文档,如果你觉得回答不了上面的几个问题,那么有必要继续往下看了场景在了解Inten
2015-06-01 21:04:22 459
知识图谱构建工具Protege
2018-12-10
word2vec-中的数学原理详解.pdf
2018-09-30
THE MNIST DATABASE of handwritten digits
2017-09-29
opencv&&opencv_contrib3.3.0-armeabi
2017-09-05
xfeatures2d 编译需要的依赖文件
2017-09-05
智能电话本管理SPBMA程序
2011-06-25
和我一起做Linux静态库
2011-06-25
和我一起做Linux动态库
2011-06-25
跟我一起自动生成Makefile
2011-06-25
Win7 下如何配置android开发环境
2011-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人