自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

转载 大话Docker

如何通俗解释Docker是什么?Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好

2016-08-31 20:11:37 557

原创 项目实战:引导动画-千变万化的ViewPager(文末小彩蛋)

开发随笔,小结项目开发中的得与失,在项目中做了基于ViewPager十分酷炫的引导动画,在这里和大家分享一下:  先在布局文件中写好ViewPager控件: <android.support.v4.view.ViewPager android:id="@+id/image_vp_guide" android:layout_height="mat

2016-08-31 16:40:26 403

原创 你可能不知道的layout_weight

1.layout_weight说到layout_weight,大家一般都会说,这还不简单,不就是一个权重吗?那看到这几行代码,大家觉得UI会是什么样的呢?<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" androi

2016-08-31 11:08:21 343

转载 Git初体验(7)-标签管理和Github

标签管理发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。

2016-08-31 10:48:41 791

转载 这个执行频率是怎么算?

读segmentfault,看到一段有关于算法分析的代码,带着注释:public class ThreeSum{ public static int count(int[]a) { // 统计和为0的元组数量 int N = a.length; int cnt = 0; for (int i =0;i//1

2016-08-31 10:42:11 4201

转载 详解ListView属性

引子:在android界面中,经常会用到ListView控件,在UI设计中,很多人都希望能够美化一下这个控件的背景。改变背景其实很简单,在布局文件中,ListView控件加入代码android:background="@drawable/bg",bg是背景图片的名称。不过这样做后,背景是改变了,但当拖动时,或者点击list的空白位置会发现ListItem都变成黑色的了,破坏了整体的效果。如

2016-08-30 16:35:54 474

原创 必知必会-异步加载(1)(文末小彩蛋)

为什么要使用异步加载:1.Android单线程模型;2.耗时操作阻塞UI线程。常用方式包括多线程/线程池和AsyncTask(底层线程池)。在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制

2016-08-30 14:58:04 354

转载 VR直播面临的五大技术挑战和实现难点

在WOT2016移动互联网技术峰会上,RGBVR联合创始人兼CTO任福新分享了主题为《VR直播的挑战和关键技术》的演讲,具体包括VR直播面临的很多问题,从系统落地角度,拍摄、编码压缩、网络传输和播放等各个环节进行系统的设计和优化。从用户体验角度,需要在临场感、沉浸感和互动性三个方面一起发力,才能为用户提供合格的VR直播。会后,51CTO记者采访了任老师,他就VR直播技术的发展现状、应用场景、存在的

2016-08-30 11:58:21 2179

转载 Git初体验(6)-分支的冲突、管理、Bug、feature和多人协作

解决冲突人生不如意之事十之八九,合并分支往往也不是一帆风顺的。准备新的feature1分支,继续我们的新分支开发:$ git checkout -b feature1Switched to a new branch 'feature1'修改readme.txt最后一行,改为:Creating a new branch is quick AND simpl

2016-08-30 11:48:32 2187 1

原创 自定义控件实战-Android UI模板设计(文末小彩蛋)

先简单说一下实现方向:接下来我们一步步实现方向:1.设计所需属性:在value目录下新建attrs.xml,属性名及类型, 2.实现我们的View:新建类继承Re

2016-08-29 15:19:12 590

转载 转一篇简易易懂的android回调实现

回调机制在 Android 监听用户界面操作中的体现本文讨论以下两个内容:1. 回调函数2. 回调机制在 Android框架 监听用户界面操作中的作用一 回调函数回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调

2016-08-29 14:28:43 479

转载 TimePicker组件的深入解析

Android TimePicker组件的深入解析,自定义TimePicker组件,实现时间的秒数只显示00或者30,实现时间的整点选择或半点选择上截图(注意文章中有些截图没上,如果想看请下载附件里面的文档)  大家注意设置时间的时候分钟只能设置00或者30,这就是我自定义的,因为最近公司有这样的属性,需要用户提交的时间是整点或者半点 1.  TimePicker组

2016-08-29 10:35:34 1752

原创 项目实战:界面、推荐逻辑优化(文末小彩蛋)

开发随笔,小结项目开发中的得与失,在项目中做了JSON的数据封装与解析,为以后网络传输做铺垫,用到了以下几个知识点,在这里和大家分享一下: 进展-界面、推荐逻辑优化:layout_margin、layout_height微调,对界面精雕细琢:android:layout_margin="2dp"双指针优化,不能直接赋值,否则游标联动,大坑:

2016-08-26 17:25:53 1530

转载 Android开发优化—界面UI(3)延迟加载

有时候,我们的页面中可能会包含一些布局,这些布局默认是隐藏的,当用户触发了一定的操作之后,隐藏的布局才会显示出来。比如,我们有一个Activity用来显示好友的列表,当用户点击Menu中的“导入”以后,在当前的Activity中才会显示出一个导入好友的布局界面。从需求的角度来说,这个导入功能,一般情况下用户是不使用的。即大部分时候,导入好友的布局都不会显示出来。这个时候,就可以使用延迟加载的功能。

2016-08-26 13:48:21 940

转载 Android开发优化-界面UI(2)抽出公共模块

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。在一个应用程序中,一般都会存在多个Activ

2016-08-26 13:40:33 1346

转载 Android开发优化-界面UI(1)系统资源的使用

在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存

2016-08-26 13:29:37 679

转载 认清性能问题

本文翻译自 Thinking Clearly About Performance 这是我三年前读到的一篇关于性能问题的好文,读完后还觉不过瘾,怕理解的不够遂又翻译了一遍,这也是当年我的第一次翻译。这几年来每次碰到性能问题,我都会想起这篇文章,它并不像很多其他关于性能问题的文章,告诉你利用什么工具怎么去解决性能问题,这类文章更多属于「术」的层面,而术的层面在不同的技术栈会有很不同的选择。而本

2016-08-25 21:36:26 360

原创 项目实战:JSON数据封装与解析及常见问题(文末小彩蛋)

项目实战,小结项目开发中的得与失,在项目中做了JSON的数据封装与解析,为以后网络传输做铺垫,用到了以下几个知识点,在这里和大家分享一下: 先简单说一下背景知识:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standa

2016-08-25 16:50:44 1123

原创 项目实战:UI美化和动画、数据传递、时间控件、字符串处理、数据库操作、和AS配置

项目实战,小结项目开发中的得与失,在项目中做了新建功能及相关页面,用到了以下几个知识点,在这里和大家分享一下:进展-新建功能及相关页面:1.UI美化,小图标的使用;有句成语叫画龙点睛,小图标就是,不经意间的一点点缀,看图:相比生硬的一段文字,有了小图标,用户界面更友好,表达更清晰,平淡中也增添了几分小乐趣。只要在布局文件中添加这一行简单的代码

2016-08-24 15:38:11 682

转载 Android应用安全防御

Android应用的安全隐患包括代码安全、数据安全、组件安全、WebView等几个方面。1. 代码安全代码安全主要是指Android apk容易被反编译,从而面临软件破解,内购破解,软件逻辑修改,插入恶意代码,替换广告商ID等风险。我们可以采用以下方法对apk进行保护:1.1 代码混淆  代码混淆可以在一定程度上增加apk逆向分析的难度。Android SDK从2.

2016-08-24 11:38:02 573

原创 项目实战:时间控件、数据库、字符串及相关逻辑

开发随笔,小结项目开发中的得与失,要点如下:进展-推荐功能及相关页面:1.相关控件的使用:TimePicker、RadioGroup、RadioButton、Button的隐藏;时间选择控件TimePicker,A view for selecting the time of day, ineither 24 hour or AM/PM mode. The hour, ea

2016-08-23 16:48:13 805

原创 项目实战:自定义ListView、数据库操作和Activity交互

在项目中做了列表页面和详情页面,用到了以下几个知识点,在这里和大家分享一下:1.数据库模块的完善:1.1升级数据库,抽出版本字段;如果xxx.db 数据库已经存在了,之后不管我们怎样Create database ,MyDatabaseHelper 中的onCreate()方法都不会再次执行。解决这个问题的办法也相当简单,只需要先将程序卸载掉,然后重新运行,这时xxx.db

2016-08-22 17:32:20 1784

转载 简单又好看的扁平化按钮。

今天分享一下流行的扁平化按钮。完全不需要用到图片哦。效果图如下:里面有2个按钮都是一样的模式。只要修改的色值就可以。下面跟我来更新你的UI吧。首先编写 button.xml代码如下:

2016-08-19 17:28:32 702

原创 项目实战:Android中登录&注册二三事

正常一个APP,必不可少的功能就是登录与注册了,今天我们说说Android中登录&注册二三事。先理一下简单流程:SQLiteOpenHelper,进入APP后建库建表。注册功能实现: 注册功能非空校验,数据库添加数据,页面跳转的实现。登录功能实现: 登录功能非空校验,数据库查询数据,页面跳转的实现。知识点:学习SQLite数据库知识。(可以参考第一行代码)

2016-08-19 16:37:18 780

转载 Git初体验(5)-分支管理

在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能

2016-08-19 15:50:41 241

原创 项目实战:JNI-Java与C的交互(简单加密解密)

JNI,Java NativeInterface,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。最好的学习手册就是官方原文档,链接奉上:http://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/

2016-08-18 20:10:22 2966

转载 Git初体验(4)-远程仓库

到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了。可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方。没错,如果只是在一个仓库里管理文件历史,Git和SVN真没啥区别。为了保证你现在所学的Git物超所值,将来绝对不会后悔,同时为了打击已经不幸学了SVN的童鞋,本章开始

2016-08-18 19:10:16 249

原创 项目实战:Android Studio与NDK的不期而遇

Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上

2016-08-17 16:18:12 471

转载 需求分析,我们应当怎样做

又到新年了,日历又要从2011年翻到2012年了,这使我有太多的感慨,进而勾起了对太多往事的回忆。过去的10年,毫无疑问是中国软件业发展最快的10年。当我们刚刚毕业的时候,还在使用VB、PB开发一些简单的数据库应用,而现在却几乎看不到它们的踪影,换来的是诸如J2EE和.NET这样的大型web应用。而这期间,RUP、XP、敏捷开发、持续集成••••••一个接一个的新概念层出不穷,令人眼花缭乱。现在想

2016-08-16 21:42:07 1304

转载 Git初体验(3)-撤销和删除

撤销修改自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:$ cat readme.txtGit is a distributed version control system.Git is free software distributed under the GPL.Git has a mutable index c

2016-08-15 19:00:11 259

原创 浅谈垃圾收集器与内存分配策略(引用计数算法)

Java与C++之间的一堵由内存动态分配技术和垃圾收集技术围成的“高墙”。现在我们来好好看看这一堵墙。说到垃圾收集GC(Garbage Collection),不禁思考三件事:1.回收哪些内存?What.2.什么时候回收?When.3.怎么回收?How.目前内存的动态分配和回收技术已经很成熟,“自动化”时代已经到来,为什么还要了解GC和内存分配?当需要排查各种内存溢出泄露等

2016-08-15 16:58:41 379

原创 浅谈Java多线程(volatile实现可见性)

volatile关键字能保证变量的可见性,但不能保证volatile变量复合操作的原子性。简单地说,volatile变量每次被线程访问时,都被迫从主内存中重读该变量值。当该变量发生变化时,会强迫线程将最新的值刷新到主内存。因此,任何时刻不同线程总能看到该变量的最新值。其实Java在语言层面还有第三种方式实现内存可见性,final,它修饰的变量不可更改。

2016-08-15 15:09:18 448

原创 试水Fragment(1)-第一种声明方式

官方API文档是最好的教程,从官方文档入手,同时考虑到直接访问Google比较慢,这里提供oschina的链接。http://tool.oschina.net/apidocs/apidoc?api=android/referenceWhen you add a fragment as a part of your activity layout, it lives in a V

2016-08-15 14:05:52 418

转载 [Learn Android Studio 汉化教程]Reminders实验:第一部分(续)

最后,有两个删除方法。第一个针对特定的提醒用 id参数和数据库对象来生成和执行一条删除语句。第二个方法需要数据库生成并执行一条删除语句来移除所有表单里的提醒。这时,你需要一个手段从数据库提出提醒并放入到ListView。清单5-13演示了必要的逻辑,通过继承之前你看到的特别的Adapter Android类来绑定数据库值到单独的行对象。创建一个新类RemindersSimpleCursor

2016-08-15 10:13:48 418

转载 Git初体验(2)-暂存区和版本库

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。先来看名词解释。工作区(Working Directory)就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区。版本库(Repository)工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为sta

2016-08-12 17:46:07 227

原创 试水Java集合(1)

一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组。Java 集合可分为 Collection 和 Map 两种体系:Coll

2016-08-12 17:09:08 308

转载 [Learn Android Studio 汉化教程]Refactoring Code

重构代码在Android Studio中开发,解决方案不会总是一蹴而成的。作为一个有效率的编程者,在你的开发,调试和测试中需要一些弹性以及代码重构。随着在这章中的行进,你将明白Android Studio如何产生代码;在这章里你将看到Android Studio如何重构你的代码。重构代码最大的风险是可能引入不期望的错误。通过分析某些风险重构操作的结果,Android Studio减低了这些

2016-08-12 10:56:56 373

原创 浅谈Android底层技术-Java层系统服务

为什么我们需要学习系统服务呢? 底层系统服务是Android 框架裡最接近Linux/Driver的部分。为了充分发挥硬件设备的差異化特性,系统服务是让上层Java应用程序來使用Driver/HWDevice 特色的重要管道。于此,先仔细解析Java层系统服务的架构,然后阐述这系统服务的代码开发要点,以及其API设计方法。 系统服务,Android框架里最接近Linux/Driver的部分

2016-08-12 09:59:24 564

原创 Git初体验(1)-初始化、添加、查看

实用性强,边学边练,一点也不枯燥。而且,所学的Git命令是“充分且必要”的,掌握了这些东西,就可以通过Git轻松地完成工作。Git是什么?他是目前世界上最先进的分布式版本控制系统(没有之一)。那什么是版本控制系统?如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一

2016-08-11 16:24:14 700

原创 试水多线程-线程同步练习

首先小结一下释放锁的情况:当前线程的同步方法、同步代码块执行结束。当前线程在同步代码块、同步方法中遇到break、return终止了该代码块、该方法的继续执行。当前线程在同步代码块、同步方法中出现了未处理的Error或Exception,导致异常结束。当前线程在同步代码块、同步方法中执行了线程对象的wait()方法,当前线程暂停,并释放锁。同时注意不会释放锁的操作:

2016-08-11 14:52:46 753

用C++实现遗传算法

用C++实现遗传算法,vc++6.0可通过,经典学习资料!吐血推荐

2014-01-28

数学建模竞赛中应当掌握的十类算法

数学建模竞赛中应当掌握的十类算法,经典必看

2014-01-28

空空如也

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

TA关注的人

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