自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sjm19901003的专栏

多元技术 融合创新

  • 博客(41)
  • 收藏
  • 关注

原创 UI更新为什么一定要在UI线程里?幕后真相究竟如何?

相信很多人看到这个标题之后轻笑一声,UI更新为啥要在UI线程里?逗呢,这是谷歌专门制定的规则,当然要遵循规则来玩儿啦。但是细致的人看到后半截标题之后就不会那么轻易的下结论了,二八定律告诉我们,大部分人都知道的事儿往往有着猫腻。我当然相信且明确知道谷歌制定了那么一套规则:UI更新一定要在主线程中进行。所以依旧取这个标题绝对不是哗众取宠。本文需要讨论的内容主要有以下几点: 1.谷歌为什么要制定这套规则

2016-11-29 16:11:11 4942

原创 聊聊2016年的这些事儿

时间:2016.11.23 地点:上海长宁区公司大楼5层窗边,采光还行,就是窗开了有点冷 状态:天气很冷,多地都是初雪,朋友圈被初雪刷屏;公司内某个重要的服务挂了,恩,基本上一天大伙都打点小酱油了。忙完自己的事儿,突然有种静下心来的状态,就想写点什么(其实自己以前语文写文章的文采还是凑合的)。可能真的是下雪的缘故吧,下班回家走在路上,还是可以简单回顾一下自己从本科到现在的变化过程的。从2013年

2016-11-23 19:37:39 689

原创 Binder机制在AIDL中的实现分析

本篇主要通过结合已经阅读的Binder机制相关资料(《Android开发艺术探索》和 http://weishu.me/2016/01/12/binder-index-for-newer/),通过AIDL来进行Binder机制的初步理解感谢两位作者:任玉刚和WeiShu一 一个AIDL Demo的组成部分二 通信机制的分析1 bindService 与 onBind2 代理是如何传递过去的

2016-11-18 13:18:07 1716 1

原创 Android 7.0 分屏拖拽文字和图片的研究

一 前提二 实测一三 实测二四 分析1 分屏拖拽实现分析-Activity间ViewstartDragAndDrop实现拖拽图片的例子2 拖拽实现分析-Activity内#一、 前提1.同一个应用app; 2.不同的activity(A和B)且支持分屏; 3.两个activity共享屏幕(即处于分屏状态,上下排列或左右排列)二、 实测一目的: 启动同一个应用的另一个activity

2016-11-12 17:09:39 3849

原创 Application、Activity、Service和Context之间的构建关系

Application、Activity、Service和Context之间的构建关系ApplicationActivityService和Context之间的构建关系一 context与applicationactivityservice的继承关系二 context与三者的对应关系描述1 Application与Context的关系2 Activity与Context的关系3 Serv

2016-11-11 14:21:08 3025

原创 Android开发之聊天室

本案例目的在于开发一个简单的聊天室功能,所有代码都是本人调试修改之后可以正常使用,主要功能在于通过多线程技术由服务器接收客户端的请求,之后将聊天内容发送给每个接入服务器的每个客户端。另外实现了登录功能,只有登录验证之后才可以实现聊天。具体的技术细节在本栏目不涉及,主要是多线程基于Socket,具体代码如下:首先是简易的聊天模型图:客户端代码如下:功能为指定socket连接的ip

2015-08-06 21:33:51 3562 1

原创 Java基础之详细理解回收机制

在以前从事C/C++开发的时候,内存的管理一直是需要被谨慎考虑的内容。在C语言中,我们使用库函数malloc()和free()两个库函数来实现从堆中分配内存与释放,而C++则使用操作符new和delete来实现内存的管理,对于这两个方式,后者是操作符而前者是库函数,后者能够被编译器处理而前者着重于对内部数据实现构造,在面向对象设计中,后者能更好的结合构造函数对自定义对象实现内存分配。但是,在接触了

2015-07-31 21:12:59 1980

原创 Android开发之远距离PC控制

这篇文章的目的是为大家提供一个Android端控制PC端软件的目的,如控制电脑上的PPT、音乐播放器等软件。在这里我为大家介绍下基本的流程,并在最后附上我自己调试并实现的代码,不足之处请批评指正。首先,Android遥控PC端,主要的框架是基于客户端/服务器模式,基本上就是android作为客户端,然后PC上运行服务器,两者之间通过Socket连接进行服务器与客户端的数据传输响应,最后由服务端

2015-07-31 19:07:22 2038

原创 Android开发之使用AsyncTask实现实时翻译

最近在做自己的安卓软件,于是乎就自己做了个翻译功能,主要方式是使用AsyncTask实现异步处理,翻译调用的互联网接口是有道提供的API。方法很简单,通过HttpGET和HttpResponse获得String,再将json数据解析即可。在AsynTask实现类中,输入是String,在doInBackground方法里主要实现目标String的获取。而在onPostExecute方法里主

2015-07-25 17:38:16 1835

原创 Android底层基础之NDK(一)

在本章中主要介绍Android平台下NDK的配置开发已经在文章末尾处附上自己对这个sample的理解。本章中使用的NDK 版本全名是android-ndk64-r10-windows-x86_64。下载完成之后解压,我解压的位置是C:\AndroidNDK\下。接下来打开Eclpise,在其中新建一个Android工程,命名为TestNDK。创建完成之后,在其根目录下新建一个jni文件。

2015-07-24 20:14:55 1066

原创 Android数据存储之内部存储、外部存储

首先来介绍下什么是内部存储?在Android平台下,有着自己独立的数据存储规则,在windows平台下,应用程序可以自由的或者在特定的访问权限基础上访问或修改其他应用程序下的文件资源。但是在Android平台下,一个应用程序所有的数据都是对外私有的,只有应用程序自己本身才可以访问。当应用程序被安装到系统中后,其所在的包会有一个文件夹用于存放自己的数据,只有这个应用程序才有对这个文件夹的

2015-07-23 19:11:04 737

原创 Android数据存储之Assets、Raw

在进行Android App开发或者将App进行解压时,都会发现有assets和raw两个文件,其实这两个文件都是 用来管理程序资源,并且两个文件内的资源在进行打包都会原封不动的保存在Apk文件中,并不会被编译成二进制文件。那么两个文件有什么区别呢?区别1:Raw内是不允许有目录结构的,而assets允许在其内部建立其他文件夹,创建目录结构。区别2:访问方式不同。         

2015-07-23 18:42:17 498

原创 Android网络应用之WI-FI检测

本章主要用于构件应用程序的自动后台检测Wifi信号的有无。主要完成的功能是:应用程序在启动使用过程中全程检测wifi信号,当出现wifi信号时会弹出Toast提示,当wifi信号消失也会提示,其他时间状态不变时不提示。功能比较简单,可是小编是第一次入手Android,就把自己的思路写下来,大神勿喷。首先,主要思路分为三步:1)、在onCreate方法中调用时间任务,将时间设置为5秒

2015-07-23 18:22:38 1103

原创 Android网络应用之Socket(一)

socket编程是网络通信的一个基础应用,无论是手机端还是PC端都需要socket技术来建立网络通信。在本章小编主要从以下几个方面来介绍socket的相关知识:分别是“什么是socket?”,“socket有什么特点?”,“socket与Http以及TCP的区别”,“移动端socket的Demo”。写的不好的地方请大家批评指正。一、何为socket?socket也被称为“套接字”,它是

2015-07-22 17:36:25 1000 1

原创 编程艺术之第二章:字符串包含

题目描述:有一个较长的字符串A和较短的字符串B,如何快速查找是否A全部包含B,即B字符串里的字符A中都有。注意:不用顺序一致,只要包含即可。如:StringA:ABCDEFGHLMNOPQRS        StringB:DCGSRQPO则返回true。思路1:看到这题,我的第一反应就是逐个比较(毕竟我的经验不多,想法比较单纯~~~)。获取A和B两个字符串的长度,假设

2015-07-21 19:42:50 540

原创 Android之Toast使用

Android开发中的Toast相信大家比较熟悉,它是为了提示用户,提高与用户交互的友好性而存在的。那么Toast有哪几种使用方法呢?小编大致罗列了以下几种:(1)、默认显示(2)、自定义位置显示(3)、带图片显示(4)、自定义布局样式显示(5)、自定义时间段显示下面将分别对各个显示方式进行解析:一、默认显示Toast的默认显示如下:Toast toast =

2015-07-20 19:32:06 592

原创 编程艺术之第一章:左转字符串

题目描述:字符串的左转操作:将字符串前面的若干个字符移动到字符串的尾部。    例如:把字符串abcdef 左旋转2位得到字符串cdefab。要求:要求对字符串实现左旋转操作,并且对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1).方法一、我们可以讲字符串的左转想成如下过程:假设左转1个字符:(1)、先把第一个字符提取出来;(2)、后续的字符依次往前进一个;

2015-07-19 22:20:34 870

原创 在浏览器输入一个网址,按回车之后发生了什么?

这个问题涉及到浏览器、网络、服务器三者之间的一系列行为,希望能为大家阐述下自己的理解:首先,当我们输入一个网址的时候,这个网址例如www.baidu.com,我们需要知道这个网址其实是一个主机名,需要通过映射关系根据主机名获取IP地址。这个映射关系可以称为DNS。有哪些方法途径可以获取IP地址呢?第一个是我们的浏览器。浏览器会将我们近一段时间访问的主机名及对应的IP地址进行缓存,缓存时间与

2015-07-19 16:41:29 3726

原创 Android平台基本架构及Dalvik概述

对于Android开发,小编觉得仅仅照着视频或者照着Android疯狂讲义上的例子照搬照抄是不够的,了解、熟悉Android平台的架构及基本原理,相关基本要素的运行机制是极为重要的,这将为从事android长远开发奠定基石作用。所以小编将在后续时间与大家分享小编学习的有关Android原理机制方面的知识,不足或错误的地方请批评指正。一、Android平台架构          首先

2015-07-18 22:12:35 2437

原创 基于MFC 对话框的 PCL、VTK 、OPENCV岩体识别系统构建(2)

在上一篇文章当中,小编为大家展示了系统的界面,并附上了相关代码,这篇文章主要介绍小编的第一个功能模块-----文件模块。但是在开始介绍文件模块时,需要对之前的界面设计做一个优化:1、我们需要界面在进行放大缩小变化时,里面的控件以及控件内的对话框也能够随着主界面的变化自动调整为合适的大小。2、美化MFC程序界面。具体解决方案如下:一、布局自动调整1、首先在XXXDlg.h头文件中添加pu

2015-04-27 19:53:31 1484

原创 Android开发之UI控件(1)-CheckBox、DataPicker、RadioGroup、ProgressBar、Spinner

熟悉了Android组件的Activity以及Intent相关内容,了解了如何创建Intent、使用Intent关联Activity,这里就简单介绍下Android中的UI控件,并简单的使用它们。今天主要介绍Android控件之CheckBox、DataPicker、RadioGroup、ProgressBar和Spinner。一、准备工作这里我们希望建立一个控件使用的App,主界面主要采

2015-04-15 22:38:06 726

原创 常用排序算法总结

生活中我们涉及到的排序算法主要有基本排序算法和多路归并排序算法。其中基本排序主要分配四大类:交换排序,选择排序,插入排序,合并排序。其中交换排序分为:冒泡排序、快速排序;选择排序可分为:选择排序、堆排序;插入排序分为:插入排序、希尔Shell排序;合并排序就是合并排序。不同排序方法对计算机的内存使用和排序效率不同,不同的文件数据排序也需要利用特定的排序方法来执行。一、冒泡排序法

2015-04-15 16:06:47 509

原创 常用查找算法总结

在实际应用中,查找算法无疑是最常用的算法之一了,这里小编给大家总结下常用的查找算法,方便大家理解与使用,写的不好还请包涵。一、顺序查找顺序查找的思路比较简单,执行的操作是从数据序列中的第一个元素开始,从头至尾依次逐个查找,直到找到所要的数据或搜索完成整个数据序列。顺序查找主要针对数据量较少的,无规则的数据。对于一个包含了N个数据的数据序列,理想情况是第一个就是要找的目标,最坏的情况是最后一

2015-04-15 14:23:07 685

原创 基于MFC 对话框的 PCL、VTK 、OPENCV岩体识别系统构建(1)

最近在忙于点云系统的构建,主要结合点云库PCL、可视化库VTK以及图像处理开源库OpenCV来做结合图像和点云数据协同的岩体分析系统。这里希望跟大家分享一下自己的整体构建流程,不足的地方希望大家能够帮忙指出以便改进。由于还在搭建过程中,所以文章的更新时间不一定,但是有关键性的进展一定会写出来讨论,谢谢大家。整个系统构建的分析过程包括模块划分,模块之间的耦合,数据库构建,相关类的创建、继承等理论

2015-04-11 12:30:13 1476 1

原创 浅译浅谈浅析effective C++(02)

这里要介绍分析的是effective c++中的条款02:尽量以const、enum、inline来替换#define在写之前还是要先声明,本文只是浅谈浅析,必要的地方也只是潜译,本文可以当做是一个简单的总结,对于有些不愿意看英文原文或者觉得书籍太过冗长的朋友来说可以直接参阅我的总结,技术帝学术帝勿喷 ,谢谢。#define是我们在C++中编写代码常用的手段,指定宏有时候可以很好的方便我们

2015-04-04 11:42:43 509

原创 浅译浅谈浅析effective C++(01)

我们在学习C++中总是会忽略很多的细节,例如,在完成某些任务的时候,我们该选择“继承”还是"模板"?选择public继承还是private继承?选择成员函数还是非成员函数?何时才去让析构函数为virtual?当operator new分配内存的时候无法找到足够内存怎么办?这一系列的问题我们都没有仔细思考,而这正是小编一系列文章从effective C++体验到的一些总结。一、C++简单回顾

2015-04-04 09:53:21 456

原创 C++指针汇总

首先非常感谢ggjucheng的指针概念解读。很多人接触C++的指针,第一感觉就是头大,感觉很容易被这玩意儿绕晕了,C++相比较其他语言,指针确实是一大难点,其涉及到的动态内存分配与手动释放等常常带来很大的困扰,尽管后来智能指针的出现有效缓解了这个问题。今天小编这里给大家详细讲一下有关指针的内容,更多详细的内容请参考指针的概念解读。首先,必须明确的是指针的概念:指针是一个特殊的变量,所以它同样

2015-04-02 09:45:19 413

原创 创建Web应用的时候请时刻牢记Web优化

最晚回到宿舍,室友在做Web开发,隧溜过去瞅瞅,发现室友在调试代码,问之,室友原来卡在了一个加载数据显示的地方。问:100万条记录如何能以最高效率呈现在网页上,保持良好的浏览效果?在跟室友交流的过程中得知室友第一次把所有数据从服务器读取并加载到浏览器页面的时候势必会导致浏览器负载过大而卡机,通过改良,打算通过分页加载的方式,分次向服务器请求,一次请求顺利执行完成之后紧接着下一次,结果效果依旧不好,

2015-04-01 17:57:21 473

原创 Android开发之Intent

之前我们介绍了什么是Activity组件,了解了它的相关生命周期,创建方法,配置布局以及内容注册。那么在一个Android的App中,一般会有多个Activity协同在一起互相联系,这样多个Activity才构成了整个App的展示界面以及展开对用户的接口方便交互,辣么多个Activity之间是如何相互调用的呢?好比按下一个BUTTON,转到了下一个Activity界面,前一个Activity则处于

2015-03-30 04:27:48 485

原创 C++之强制类型转换原理

不管是哪种编程语言,都会涉及到数据类型转换。强制类型转换是将操作数的类型转换成所需要的类型。强制类型转换到底是如何实现的?请先看下面一个简单数据类型的转换:一、简单数据类型的强制类型转换char b = 'a';int num = (int)b;上面是一个很简单的由char转为int数据,我们得到num为97。那么这个类型转换的原理是怎么样的呢?我们一起来看一下两个数据类型在内存中

2015-03-30 04:25:46 5824 1

原创 C++中强制数据类型转换的原理

不管是哪种编程语言,都会涉及到数据类型转换。强制类型转换是将操作数的类型转换成所需要的类型。强制类型转换到底是如何实现的?请先看下面一个简单数据类型的转换:一、简单数据类型的强制类型转换char b = 'a';int num = (int)b;上面是一个很简单的由char转为int数据,我们得到num为97。那么这个类型转换的原理是怎么样的呢?我们一起来看一下两个数据类型在内存中

2015-03-30 02:20:28 1741

原创 Android开发之Intent

之前我们介绍了什么是Activity组件,了解了它的相关生命周期,创建方法,配置布局以及内容注册。那么在一个Android的App中,一般会有多个Activity协同在一起互相联系,这样多个Activity才构成了整个App的展示界面以及展开对用户的接口方便交互,辣么多个Activity之间是如何相互调用的呢?好比按下一个BUTTON,转到了下一个Activity界面,前一个Activity则处于

2015-03-30 00:41:25 727

原创 常用SQL语句总结(1)

前段时间由于需要运用数据库,把Oracle复习了遍,最近打算把跟Oracle相关的知识整理一下。关于数据库,SQL语句算是这方面比较基础的内容了,今天就来先整理下SQL语句方面的内容。有关概念性的内容就不多说了,直接上应用。01、SELECT用法:从表格中选取字段数据Select “字段名” From “表名”查询的结果是对应字段名的所有数据,包括重复的数据在内。当我们要查询所

2015-03-29 13:39:53 511

原创 C++常用算法(上)

关于算法,在这里给出我们常用的几个算法:◆合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素;◆合并两个单链表;◆倒序打印一个单链表;◆给定一个单链表的头指针和一个指定节点的指针,在O(1)时间内删除该节点;◆找到链表倒数第K个节点;◆反转单链表;◆通过两个栈实现一个队列;◆二分查找;◆快速排序;

2015-03-29 10:12:19 485

原创 Android组件介绍之Activity(2)

在第一篇文章中介绍了Activity的概念以及生命周期的流程,现在我们来看一下如何创建Activity。这里我们使用adt-bundle来建立Android Project。大家也可以使用Android Studio来建立工程。OK,开始吧一、新建Android Application Project            打开新建界面选择Android>Android Applicati

2015-03-28 22:04:30 518

原创 JavaWeb之Apache-Tomcat配置

Apache-Tomcat是一款免费开源的Web服务器,对于Web开发来说它是国际上十分流行的服务器。它属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,

2015-03-28 20:11:01 10296

原创 PCL点云库介绍及项目配置

关于PCL点云库,大家百度的时候可以找到很多相关的介绍,反正一堆专业性概念,相关的技术层面以及一些强大的应用叙述云云,不过关于这些小编实在不感冒,能先把这个工具好好用起来再说吧。关于PCL相关的论坛及专业问题讨论,大家需要的可以在中国PCL在线论坛中进行讨论与学习资源的下载,当然这不是唯一的,如果英语水平过关的话大家可以去官网国际论坛http://www.pcl-users.org/中进行学习。下

2015-03-28 08:39:50 6433

原创 漫谈虚函数

首先写这篇文章之前,想要说明的是这篇文章告诉了我很多细节性的知识点,所以在此感谢该文的作者v_JULY_v,有读者想访问其主页可以点击这里          C++的虚函数大家比较熟悉,说到虚函数就必须提及多态性,C++的多态性能有效提高基类的可操作性,利用指向基类的指针或者基类的引用,根据运行时编译确定所需要执行的子类的方法,大大提高了代码的可重用性以及类的可扩展性与灵活性。这里多提一句:虚

2015-03-27 06:22:22 774

原创 JavaWeb之客户端/服务器通信原理

相信已经有很多人十分了解客户端与服务器之间的通信基本过程了,这里就容小编把近段时间关于这方面的学习做一个归纳。还是那句话,我不是资深专业的技术党,一个俗人就用通俗易懂的方法来诠释我的理解,这里主要讲的是基于http协议的通信机制,所以这里的客户端指的是浏览器,希望给大家新的体验。一、总结     一上来就给总结,我相信各位也是醉了,这里我想说的是文章采用总-分-总的组织方式来阐述,先告诉大

2015-03-27 04:11:38 4730

原创 Android组件基本介绍之Activity

一定有很多人从事Android开发,这篇文章主要是对于Android开发入门新生来阅读的,就比如小编我,就是刚刚涉及这个领域,浅谈一些对已学知识的认识,希望各位大神评论指正。本文的叙述不会太专业,以通俗易懂为主,专业党海涵勿喷。Android系统与苹果手机的IOS系统算是移动端的两个巨头了,掌握它们的基本原理对于移动端的开发而言是基础性的工作。关于IOS相关开发基础介绍请点这里Andr

2015-03-27 02:06:10 660

空空如也

空空如也

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

TA关注的人

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