- 博客(56)
- 资源 (16)
- 收藏
- 关注
翻译 Android Design Support Library最新组件
Android 5.0 Lollipop是Android发布的最具意义的一个版本,这样说的一个很重要的原因是Material Design的引入,一个新的设计语言刷新了整个Android的体验。我们的详细说明是一个对于适应Material Design的伟大的开始,同时我们也可以理解为那对于开发者来说是一个巨大的挑战,尤其是关注着向后兼容的开发者来说。从新的Android的设计依赖库(Design
2015-06-03 13:51:21 3388
翻译 如何使用Android中的OpenGL ES媒体效果
Android的媒体效果框架允许开发者可以很容易的应用多种令人印象深刻的视觉效果到照片或视频之上。作为这个媒体效果的框架,它使用GPU来处理图片处理的过程,它仅仅接收OpenGL的纹理(texture)作为输入。在本次教程中,你将会学习到如何使用OpenGL ES2.0将图片资源转化为纹理,以及如何使用框架为图片应用不同的处理效果。准备为了开始本次的教程,你必须具备: 1.一款支持Android开
2015-06-01 15:52:20 4782 1
原创 Android开发--Facebook酷炫开源库Shimmer使用
今天在上网的时候无意间看到了Facebook的Shimmer开源库,感觉很是酷炫,而且使用超方便,决定给大家介绍一下。Shimmer是Facebook提供的一项基于Java的library,它可以使Android中的所有View控件具有闪光的效果。该项目的GitHub项目托管地址,请猛戳https://github.com/facebook/shimmer-android使用Shimmer配置工程
2015-05-31 15:59:17 5808 4
原创 Android快速开发--使用ORMLite操作数据库
OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言。在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来记一下吧,感谢大神团队贡献如此实用的开源框架,这里是OrmLite的官方网址:http://ormlite.com/准备工作–创建数据库及数据表ORMlite通过Java注解的方式来建立起与数据库的映射
2015-05-17 10:28:29 4015
原创 Android 5.x--使用Material Theme加Palette
Android5.0较之以前的版本,有一个比较大的改变:在Android5.x中支持Material Design的主题风格,这对于视觉上将是一个重大的改变。新的主题风格给人的感觉眼前一亮,原来Android也可以这么美,相信通过不断完善,Android也将越来越强大。那么今天就介绍一下,如何使用这让人眼前一亮的主题吧。开始使用目前只有在Android5.0之上的版本才可以支持Material的主题
2015-05-09 10:15:48 2519
原创 设计模式--简单工厂、工厂方法和抽象工厂
简单工厂、工厂方法和抽象工厂三种设计模式都用来帮助我们将对象的实例化部分抽取出来,优化系统结构,在开发中经常使用。三者既有区别,也有联系,今天来对这三种设计模式做一个简单的记录。概述简单工厂:用来生产同一等级结构中的任意产品(对于增加新的产品,需要修改工厂)工厂方法:用来生产同一等级结构中的固定产品(支持增加新的产品)抽象工厂:用来生产不同产品族的全部产品(支持增加新的产品族,不支持增加新的产
2015-04-26 23:48:35 1191
翻译 Android开发--CardView使用
Android5.0中向我们介绍了一个全新的控件–CardView,从本质上看,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果。请注意:CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。
2015-04-26 08:41:06 11124
原创 Android开发--RecyclerView使用,看AndroidL新特性
在去年Google I/0大会,Google开放了一个全新的视图类RecyclerView,它被用来代替ListView以及GridView,提供更为高效的回收复用机制,同时实现管理与视图的解耦合,今天对这个新的控件来进行一次总结。概述首先,让我们来看一下RecyclerView类之下都有哪些重要的类,以及他们的作用:RecyclerView.Adapter:托管数据集合,为每个Item创建视图;
2015-04-23 12:40:26 15083 21
原创 Android开发--IntentService的用法,你错过了什么
IntentService是Android中提供的后台服务类,我们在外部组件中通过Intent向IntentService发送请求命令,之后IntentService逐个执行命令队列里的命令,接收到首个命令时,IntentService就开始启动并开始一条后台线程执行首个命令,接着队列里的命令将会被顺序执行,最后执行完队列的所有命令后,服务也随即停止并被销毁。
2015-04-12 14:12:29 6676
原创 Android开发--玩转WebView
在Android开发当中,进行网络访问加载一个网页的时候就需要用到一个WebView来进行显示,这样可以使得我们的App更为灵活。今天来介绍一下Android中WebView的几种用法。基本用法1.WebView带加载进度条显示:
2015-04-08 09:38:49 2895 2
转载 关于cookie 和session 的理解
定义当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie来辨认使用者,以方便
2015-04-07 17:07:54 2860 1
转载 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件。KKT条件是拉格朗日乘子法的泛化。之前学习的时候,只知道直接应用两个方法,但是却不
2015-03-29 14:41:15 1293
原创 Android源码分析--MediaServer源码分析(二)
在上一篇博客中Android源码分析–MediaServer源码分析(一),我们知道了ProcessState和defaultServiceManager,在分析源码的过程中,我们被Android的Binder通信机制中的各种复杂的类关系搞的眼花缭乱,接下来我们就以MediaPlayerService为例来分析一下Binder的通信机制。首先来回顾一下:BpBinder和BBinder都是Andr
2015-03-29 10:47:50 3610 1
原创 Android源码分析--MediaServer源码分析(一)
MediaServer中包括了系统中的许多重要的Server:AudioFlinger:音频系统中的核心服务AudioPolicyService:音频系统中关于音频策略的重要服务MediaPlayerService:多媒体系统中的重要服务CameraService:有关照相和摄像的重要服务同时,分析MediaServer对于理解Android中的IPC机制能够提供较好的帮助。Android
2015-03-27 23:18:34 4977 1
原创 Android开发--仿景点通景区地图SurfaceView实现
最近在帮老师做一个项目,类似于景点通的App手机应用,我们是要精细化一些室内的地图,室内的地图采用的是自己的一套定位机制,所有室内地图也要自己来实现,参考了网上一些例子,考虑到效率的问题,最后决定使用SurfaceView来进行地图绘制,实现的功能有:双击放大多点触摸放大地图拖拽添加地图标记 效果图一张: 代码思路1.处理缩放和拖拽事件 在这里我利用了Matrix类提供的图片操作方法去进
2015-03-21 19:37:28 6945 24
原创 Android源码分析--Handler和Looper机制详解
在Android系统中的应用程序,与Java的应用程序相同,都是靠消息驱动,简单的说就是:有一个消息队列,我们可以不断的向这个消息队列中添加消息,并从中取出消息,处理消息。Android中与此工作相关的主要是由Handler,Looper以及Message来完成。Looper类:为一个线程运行着一个消息循环,内部有一个消息队列,每一个线程只允许最多存在一个Looper;Handler类:允许你向
2015-03-13 16:21:04 6629
原创 Android开发--教你巧妙应对屏幕旋转
Android手机支持屏幕旋转功能,手机屏幕旋转直接引发了我们的App视图变化,我们选择怎样去处理手机的翻转以及当我们的手机屏幕发生了旋转的时候我们选择何种策略去进行处理视图直接影响了我们的App的用户体验。今天我们一起来学习一下手机屏幕旋转的相关知识。设置屏幕方向切换的属性为了使Activity在屏幕旋转方向适应不同的场合,在AndroidManifest文件的activity标签下提供了
2015-03-11 15:42:41 4015
转载 Android开发--解决adb端口占用
今天,写了不少代码后,点击那个Run按钮后,Eclipse给我报错:[2012-06-19 15:22:19 - adb] ADB server didn’t ACK[2012-06-19 15:22:19 - adb] * failed to start daemon *在看帖子的过程中,众位苦逼的同行中,有一位提过:5037端口被占用的话,也会出现如下提示……于是乎,真像是找到了救命稻草一般,先
2015-03-09 23:15:47 1026
原创 Java编程--关于JNI你应该知道的一切
出于效率的问题,很多情况下,我们需要在上层的Java代码中调用底层 C或C++实现,这时jni就可以大显身手了。jni(Java Native Interface)允许Java代码和其他语言写的代码进行交互,使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样 做是可以接受的,甚至是必须的。例如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。使用JNI
2015-03-08 16:17:52 2957
原创 Android源码分析--Zygote进程分析
众所周知,Android系统中存在着两个完全不同的世界: 1. Java世界,Google所提供的SDK就主要是针对这个世界的,在这个世界中运行的程序都是基于Dalvik虚拟机的Java程序。 2. native世界,也就是利用C或C++语言开发的程序。那么问题来了,Android系统具体是如何将这两个世界联系起来的,这就是关系到本篇博文所讲的Zygote进程。
2015-03-07 15:47:25 1851
原创 Android源码分析--system_server进程分析
在上一篇博文中我们进行了有关Zygote进程的分析,我们知道Zygote进程创建了一个重要的进程–system_server进程后就进入了无限循环中,之后Android系统中的重要任务就交给了system_server进程,作为zygote的嫡长子进程,system_server进程的意义非凡,今天我们来分析一下system_server进程。
2015-03-07 15:43:48 4192 1
原创 Android开发--仿微信语音对讲录音
自微信出现以来取得了很好的成绩,语音对讲的实现更加方便了人与人之间的交流。今天来实践一下微信的语音对讲的录音实现,这个也比较容易实现。在此,我将该按钮封装成为一个控件,并通过策略模式的方式实现录音和界面的解耦合,以方便我们在实际情况中对录音方法的不同需求(例如想要实现wav格式的编码时我们也就不能再使用MediaRecorder,而只能使用AudioRecord进行处理)。
2015-02-26 14:58:25 12514 8
转载 Android开发--大神博客汇总
本篇文章主要纪录我在学习过程中,发现的非常给力的CSDNBlog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学者指一条路吧!只要你下定决心跟随强者的脚步,成为人们眼中的大神,只不过是时间问题!下面排名不分先后CSDN鸿洋:http://blog.csdn.net/lmj623565791 爱哥:http://blog.csdn.net/aigestudio
2015-02-16 21:46:53 1539 1
原创 程序设计--素数问题
素数–一个大于1的自然数,除了1和它本身外,不能整除以其他自然数,因其特殊的性质,被广泛用于密码学领域,在程序设计竞赛及各大公司的面试中也经常出现,今天和大家分享几道有关素数的基础问题。素性测试问题描述:给定整数num,判断num是不是素数。由素数的定义,我们知道一个素数只能拥有两个约数,即1和它本身,又因为一个数的约数不能大于它本身,由此只要我们只要遍历2到num-1,找到除此之外的约数即可判断其
2015-02-15 17:26:53 1856
原创 Android开发--利用Matrix进行图片操作
今天和大家分享一下Android中Matrix的简单用法,Matrix其实就是一个3*3的矩阵,利用这个矩阵对图像操作。在Android中,为我们提供一些封装好的方法可以进行一些简单的图像操作,总共分为rotate(旋转),scale(缩放),translate(平移)和skew(倾斜)四种,每一种变换都提供了set, post和pre三种操作方式,除了translate,其他三种操作都可以指定中心。
2015-02-13 13:22:34 2652
转载 Android手机一键Root原理分析
一直以来,刷机与Root是Android手机爱好者最热衷的事情。即使国行手机的用户也不惜冒着失去保修的风险对Root手机乐此不疲。就在前天晚上,一年一度的Google I/O大会拉开了帷幕,最新的Android4.1系统成为了大会的热点,经过短短的几个小时后,网上就有人泄露了Jelly Bean的下载地址,再然后就有了Android 4.1带Root的完整刷机包,真是强大的人们!Root的由来什么是
2015-02-09 14:36:47 1178
转载 Android系统权限和root权限
Android权限说明Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制, Android系统权限相关的内容:(一)linux文件系统上的权限 -rwxr-x–x system system 4156 2012-06-30 16:12 test.apk.代表的是相应的用户/用户组及其他人对此文件的访问权限,与此文件运行起来
2015-02-08 21:56:21 4183 1
原创 Android开发--桌面浮动歌词窗口
随着Android手机的屏幕越来越大,Android浮动窗口的应用也越来越多。像经常会用到的,音乐播放器的桌面歌词以及一些手机卫士软件,像腾讯手机管家的小火箭清理内存,都应用到了浮动窗口的原理,今天拿来桌面歌词做一个简单的记录,举一反三即可实现类似的应用。效果图如下:一、浮动窗口的实现 1.首先我们要申请权限,以便我们可以实现浮动窗口的拖拽 2.接下来,
2015-02-06 19:53:50 3200
原创 Unity3D基础--动态创建和设置游戏对象
在游戏开发中动态的创建、设置、销毁游戏对象经常用到,刚刚接触Unity,在此做个笔记吧。1.如何动态创建对象:调用GameObject的CreatePrimitive方法可以按模型进行创建,PrimitiveType中可选的模型有,Cube(立方体),Sphere(球体),Capsule(胶囊),Plane(平原),Cylinder(圆柱);创建出的对象不需要Add之类的就可以显示出来
2015-02-04 16:52:50 15330 1
原创 Android开发--常用的传感器总结
随着手机的发展,现在各大手机支持的传感器类型也越来越多,在开发中利用传感器进行某些操作令人们有一种耳目一新的感觉,例如微信中的摇一摇,以及手机音乐播放器中的摇一摇切歌。今天来简单介绍下Android中传感器的使用以及一些常用的传感器。 一、传感器的使用 1.首先我们需要获得传感器管理对象:通过 mSensorManager = (SensorManager) g
2015-02-03 15:36:17 1691
原创 最长单增子序列问题
问题描述:有一个长为n的数列a0,a1,a2........a(n-1)。请求出这个序列中最长的单增子序列的长度。单增子序列的定义是:对于任意的 i 这个问题就是著名的最长单增子序列(LIS)问题。对于这道问题,我们可以利用动态规划来进行求解:假设dp[i]表示以a[i]为末尾的最长单增子序列的长度,则在得到dp[i]时,我们可以这样做:初始化dp[i]为1,利用一个j变量遍历已经访
2015-01-30 15:19:48 2461
原创 动态规划与背包问题
动态规划(Dynamic Programming)是算法的设计方法之一,通常用于最优化问题,此类问题可能有多种可行解,而我们希望找出一个最优的解(最大或最小)。动态规划的设计可以分为以下几个步骤: 1.描述最优解的结构 2.递归的定义最优解的值 3.按自底向上的方式计算最优解的值 4.由计算出的结果构造一个最优解
2015-01-29 12:47:47 1590 2
原创 程序设计--迷宫问题
问题描述:给定一个大小为N*M的迷宫。迷宫有通道和墙壁组成,每一步可以向邻接的上下左右的通道移动。请求出从起点到终点所需要的最小步数。 例如,N为10, M为10,输入的迷宫如下表示,其中S表示起点,G表示终点,"."表示通道,“#”表示墙壁 #S######.# ......#..# .#.##.##.# .#.....
2015-01-27 09:13:52 4738
原创 Unity3D基础--常用的GUI控件
Unity3D中的GUI部分是每帧擦除重绘的,只应该在OnGUI中绘制GUI,每一次在OnGUI方法中声明的变量值都不会保存下来,例如,在Unity中画一个文本编辑框可以调用如下代码:GUILayout.TextField("text");但是运行后会发现,不论我们输入什么都还是只会显示text字符串。这是因为:我们在上一帧中输入的字符串没有被保存,在下一帧中会全部擦除重绘,即重新绘制一个"tex
2015-01-25 10:32:47 4171
转载 cocos2d基础学习--多线程使用及线程同步
cocos2d-x 多线程以及线程同步cocos2d-x引擎在内部实现了一个庞大的主循环,每帧之间更新界面,如果耗时的操作放到了主线程中,游戏的界面就会卡,这是不能容忍的,游戏最基本的条件就是流畅性,这就是为什么游戏开发选择C++的原因。另外现在双核手机和四核手机越来越普遍了,是时候使用多线程来挖掘硬件的潜力了。1.环境搭建cocos2d-x中的多线程使用pthread就可
2015-01-23 21:44:05 913
原创 Android开发--全国各城市列表并按首字母排序加快速定位
在很多商业的App中都需要进行城市的选择,一般我们会对城市按首字母进行排序,以前的项目中也曾经遇到,今天拿来复习一下。思路如下: 1.首先我们需要一个包含全国各城市的数据库文件或Json,Xml文件都可以,我从网络上搜到了一个数据库.db的文件,该数据库包含了中国各城市的中文名称以及首字母。首先将该数据库文件拷贝到我们的工程目录的res/raw文件夹之下(该文件夹不会被Android
2015-01-23 17:37:05 15523 5
原创 Android开发--瀑布流效果的实现
对手机App的瀑布流效果一直有所耳闻,却从未自己亲自动手实践,趁着这几天还有些时间,做了些研究,也参考了网络上很多大神的博客,终于写出来自己的瀑布流效果了,先上一图。 正如图所示:瀑布流的原理很简单,就是自己重新写一个ScrollView,添加一个横向排布的LinearLayout,再向这个横向的LinearLayout中添加三个纵向排布的LinearLayout,接
2015-01-22 16:43:44 2394
原创 程序设计--抽签问题
问题描述:你的朋友提议玩一个游戏:将写有数字的n个纸片放入口袋中,你可以从口袋中抽取抽取4次纸片,每次记下纸片的数字并将其放回口袋中。如果这4个数字的总和为m,就是你赢。你挑战了好几回,结果一次也没有赢过,于是怒而撕破口袋,取出所有的纸片,检查自己是否真的有赢的可能性。请你编写一个程序,判断当纸片上的数字为k1,k2........kn时,是否存在4次和为m的方案。如果存在则输出Yes,否则输出N
2015-01-21 11:10:17 1453
转载 后缀树的构造方法-Ukkonen详解
使用后缀树在字符串匹配可以得到很好的时间效率,下面转载了一篇构造后缀树的UKK算法,这是一种在线算法,其时间复杂度可以达到O(n)。先来记录几个利用后缀树解决的实际问题: 1.查找字符串O是否被包含在字符串S中: 以字符串S构造后缀树,按照字典树的搜索方法去搜索字符串O 2.求指定字符串T在字符串S中的重复次数: 以字符串S加 “$”
2015-01-03 14:49:50 5542
原创 Android开发--多线程下载加断点续传
文件下载在App应用中也用到很多,一般版本更新时多要用的文件下载来进行处理,以前也有看过很多大神有过该方面的博客,今天我也自己来实践一下,写的一般,还请大家多提意见,共同进步。主要思路: 1.多线程下载: 首先通过下载总线程数来划分文件的下载区域:利用int range = fileSize / threadCount;得到每一段下载量;每一段的位
2014-12-30 19:34:04 2288 2
如何使用Android中的OpenGL ES媒体效果
2015-06-01
Android开发-RecyclerView
2015-04-23
Android开发--仿景点通景区地图SurfaceView实现
2015-03-21
Android开发Matrix操作图片
2015-02-13
Java 2048桌面小游戏
2014-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人