博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Android

Android有关的技术文章
摘要:转载别人整理好的文章,列出了很多炫酷的UI开源设计原文地址:http://www.androidchina.net/1992.html1.Side-Menu.Android分类侧滑菜单,Yalantis出品。项目地址:https://github.com/Yalantis/Side-Menu.And... 阅读全文

posted @ 2016-01-15 11:17 泡泡糖 阅读(1282) 评论(0) 推荐(1) 编辑

摘要:文章转自:http://www.nohacks.cn/post-35.html自序:由nohacks.cn 收集整理,来源于网络,版权归原作者所有,基本收集了网络上能使用的大部分天气API接口,作者水平精力有限,难免有遗漏或错误的地方,欢迎反馈,作者网站:http://nohacks.cn更新记录:... 阅读全文

posted @ 2015-11-18 14:54 泡泡糖 阅读(7288) 评论(1) 推荐(0) 编辑

摘要:今天说说Provision这个APK,可能很多朋友都不知道有这个APK存在。Provision的作用很简单,就是一个系统初始化引导程序,原生的Android里面Provision只做了一件事,就是写入一个DEVICE_PROVISIONED标记。不过这个标记作用很大,这个标记只会在系统全新升级(双清)的时候写入一次,代表了Android系统升级准备完成,可以正常工作。 之所以会关注DEVICE_PROVISIONED这个标记,是因为我在升级系统的时候遇到一个问题。系统在不格式化/data/分区的情况下(不进行双清操作)有可能会导致一个问题,机器的Home键按了没反应。1、Provisio... 阅读全文

posted @ 2013-11-15 18:47 泡泡糖 阅读(14792) 评论(0) 推荐(2) 编辑

摘要:今天讲解一下策略模式,策略模式也是很常用的设计模式,对多种算法或者数据结构选择使用的情况下,经常会使用策略模式来管理这些算法。下面会简单讲解一下策略模式的概念和基本实现。然后结合Android里面的实际应用来说明。1、策略模式概念 定义一系列算法,把他们独立封装起来,并且这些算法之间可以相互替换。策略模式主要是管理一堆有共性的算法,客户端可以根据需要,很快切换这些算法,并且保持可扩展性。策略模式的本质:分离算法,选择实现。2、策略模式实现 下面针对策略模式说一个小型的实现例子,个人觉得学习设计模式,最好的方法是看看设计模式概念,然后先看看简单的模式实现的例子。策略模式实现起来,主要需要... 阅读全文

posted @ 2013-10-24 09:13 泡泡糖 阅读(3333) 评论(5) 推荐(2) 编辑

摘要:设计模式,对程序员来说是一个坎,想在程序员这条路走得更远,设计模式是你的必修课。从大学时代接触GoF到工作几年后重新看设计模式,每次感觉都不一样。这次想借着分析Android Framework源码的机会,顺道整理一下设计模式的知识。 今天主要是先讲一下观察者模式,观察者模式对于做系统或者做公共库的朋友来说,应该很熟悉,基本上所有系统都会用到这个模式。整理的时候,主要是对模式进行进步讲解然后结合Android里面应用进行说明。设计模式的说明主要是参考《研磨设计模式》这本书,这本书讲解了GoF里面23种模式,而且比GoF更容易理解。如果对设计模式不了解的朋友,可以看看《研磨设计模式》这本书... 阅读全文

posted @ 2013-10-15 19:15 泡泡糖 阅读(17160) 评论(0) 推荐(0) 编辑

摘要:今天记录一下一些基本的数学知识,左手坐标系和右手坐标系。这些对于搞图像开发或者游戏开发的朋友来说,应该是很基础的东西,不过对于大部分人来说还是比较陌生的知识。之所以看这方面资料主要是因为在使用Android Camera使用Matrix的过程中,发现需要一些数学理论支持才能理解。这是为了后面使用Android Camera和Matrix的基础。1、空间直角坐标系 下面摘录一段百科的解析,这些都是数学基础。过空间定点O作三条互相垂直的数轴,它们都以O为原点,具有相同的单位长度.这三条数轴分别称为X轴(横轴).Y轴(纵轴).Z轴(竖轴),统称为坐标轴。 各轴之间的顺序要求符合右手法则,即以... 阅读全文

posted @ 2013-09-17 23:26 泡泡糖 阅读(31277) 评论(1) 推荐(2) 编辑

摘要:已经很久没更新Launcher系列文章,今天不分析源码,讲讲如何在Launcher里面添加桌面设置的功能。目前很多第三方Launcher或者定制Rom都有简单易用的桌面设置功能。例如小米MIUI的Launcher就有很丰富编辑功能。今天开始会讲一下如何实现桌面编辑功能。网上对于实现Launcher一些编辑功能的文章凤毛麟角,基本没什么资料可以参考,只能靠自己摸索对比别人Launcher的效果。 桌面编辑功能我主要分为 壁纸设置、Widget插件、切换特效、主题 4个部分。这个主要是参考OPPO的手机做的,个人觉得Oppo手机这方面做得挺不错。今天先说说壁纸设置功能,长按桌面或者在Work... 阅读全文

posted @ 2013-09-11 23:25 泡泡糖 阅读(36704) 评论(13) 推荐(0) 编辑

摘要:使用过Android系统的朋友应该都知道,Android里面声音是区分好几种情况,每种情况下的音频大小是独立的。也就是说你调节了电话铃声大小不会影响多媒体播放的声音大小。这个涉及了AudioStream的使用,今天会详细讲解一下AudioStream相关知识。另外我们用耳机上按钮控制音乐播放器等音频程序,可以使用MediaButton来实现远程控制。另外会详细讲解MediaButton的两种注册方法以及他们的区别。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、AudioStream分类 首先看看AudioStream的分类,Android为不同的... 阅读全文

posted @ 2013-09-06 00:04 泡泡糖 阅读(11849) 评论(0) 推荐(0) 编辑

摘要:今天讲一下对VLC播放器音频播放功能进行二次开发,讲解如何改造音乐播放相关功能。最近一直在忙着优化视频解码部分代码,因为我的视频播放器需要在一台主频比较低的机器上跑(800M主频),所以视频解码能力受到极大考验,VLC的解码库挺复杂,花了两三周时间,也只看了点皮毛。 这里说几句题外话,中间也尝试过使用其他的解码器,其中选了目前比较有名的Vitamio来试验,不过它让我大失所望,对于720*420的视频解码能力竟然还不如Beta版的VLC的解码,我测试一个立方体旋转视频,播放的时候,整个视频画面变形了o(╯□╰)o。这里喷一下Vitamio4.0,在中低端机器上表现实在让人失望。不过对于1... 阅读全文

posted @ 2013-09-02 00:11 泡泡糖 阅读(7626) 评论(9) 推荐(1) 编辑

摘要:Android自带了很多方便的测试工具和方法,包括我们常用的单元测试、Robotium测试、Monkey测试、MonkeyRunner测试、senevent模拟等。这些方法对于我们编写高质量的APP十分有用。也可以提前暴露我们程序的隐藏问题。今天给大家讲一下Monkey测试,Monkey测试可以说是我上面提到过的测试方法里面最简单的。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434) 1、Monkey测试简介 Monkey主要应用在压力和可靠性测试上,运行该命令可以随机地向目标程序发送各种模拟键盘事件流,并且可以自己定义发送的次数,以此观察被测应用程序... 阅读全文

posted @ 2013-08-28 09:23 泡泡糖 阅读(13518) 评论(2) 推荐(3) 编辑

摘要:今天讲一下目前移动领域很常用的技术——二维码。现在大街小巷、各大网站都有二维码的踪迹,不管是IOS、Android、WP都有相关支持的软件。之前我就想了解二维码是如何工作,最近因为工作需要使用相关技术,所以做了初步了解。今天主要是讲解如何使用ZXing库,生成和识别二维码。这篇文章实用性为主,理论性不会讲解太多,有兴趣可以自己查看源码。1、ZXing库介绍 这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码... 阅读全文

posted @ 2013-08-25 23:15 泡泡糖 阅读(45905) 评论(7) 推荐(5) 编辑

摘要:从我学Android开始,一直就想做一件事。就是好好把APIDemo看一遍。今天开始会抽时间把Android官方的APIDemo程序全部过一遍。主要是为了两个目的:第一,复习以前学习的API用法。第二,掌握Android整体可以使用的API。方便以后做某些功能,知道有哪些API可以直接使用。 这个系列先从动画开始,因为动画是最常用的,而且我对Android的动画也不是很熟悉,只是会用一些简单动画。因此打算从动画API开始看。个人觉得APIDemo这个程序是一个很好的教材,很适合初学和当资料查询。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、文件路... 阅读全文

posted @ 2013-08-16 09:29 泡泡糖 阅读(2968) 评论(1) 推荐(0) 编辑

摘要:今天讲一下Android里面经常看到却不太留意的知识点——ShareUserId,在Android里面每个app都有一个唯一的linux user ID,则这样权限就被设置成该应用程序的文件只对该用户可见,只对该应用程序自身可见,而我们可以使他们对其他的应用程序可见,这会使我们用到SharedUserId,也就是让两个apk使用相同的userID,这样它们就可以看到对方的文件。为了节省资源,具有相同ID的apk也可以在相同的linux进程中进行(注意,并不是一定要在一个进程里面运行),共享一个虚拟机。 下面我们看看ShareUserId的作用,数据共享、调用其他程序资源。(PS:新建的Q... 阅读全文

posted @ 2013-08-15 12:06 泡泡糖 阅读(21297) 评论(2) 推荐(0) 编辑

摘要:很久没写Launcher分析的文章,最近实在太忙。今天七夕本来是想陪女朋友逛街 ,碰巧打台风呆在家里,就继续写一篇文章。今天主要是讲一下Launcher里面的Widget列表,这方面信息比较多,今天重点讲一下Widget信息收集和Launcher是如何显示Widget。这是这个系列第12篇文章,可是有关Launcher的分析感觉还有很多东西要写。 Widget列表是Android4.0以后才有的一种新特性,主要是可以直接查看Widget的缩略图,方便用户使用。而且Widget列表放到了AllApp里面,用一个TabHost管理。有关AllApp的TabHost切换,可以参考我前面的文章:... 阅读全文

posted @ 2013-08-14 00:15 泡泡糖 阅读(8554) 评论(1) 推荐(2) 编辑

摘要:今天继续上一篇Android顶层窗口、浮动窗口的进阶应用。上一篇主要讲解了WindowManager服务和如何使用WindowManager编写一个顶层窗口。今天主要是讲讲如何在顶层窗口里面播放视频,这个功能对很多嵌入式设备来说十分有用。例如现在手机和平板上一些视频播放器就可以实现画中画功能,只显示一部分小窗口播放,用户可以继续操作其他功能。当你在看视频的时候收到短信,你只要进入画中画功能,视频可以继续播放,同时你可以去操作短信功能。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、MediaPlayer视频播放 视频播放使用Android自带的播放... 阅读全文

posted @ 2013-08-10 17:34 泡泡糖 阅读(23886) 评论(5) 推荐(3) 编辑

摘要:做过Window程序开发的朋友应该都知道,我们要把程序窗口置顶很简单,只要设置一些窗口属性即可。但是到了Android,你无法简单设置一个属性,就让Android的Activity置顶。因为只要有新的Activity启动,你的Activity界面就会被挡住。今天介绍一下如何把一个窗口置顶。 也许会有人说:你的窗口置顶了,就会破坏系统的稳定性,影响其他程序使用,这是流氓行为o(╯□╰)o 。对于这个问题,如果你的顶层窗口没有处理好,的确会有这个问题。不过对于一些定制系统来说,这个功能可以实现很有用的功能,例如:对于一些需要长时间提示用户的危险警告。例如下面效果图,在浏览图片的时候,系统弹出... 阅读全文

posted @ 2013-08-08 14:02 泡泡糖 阅读(55082) 评论(3) 推荐(3) 编辑

摘要:上一篇介绍了如何使用Mediarecorder来录音,以及播放录音。不过并没有达到我的目的,一边录音一边播放。今天就讲解一下如何一边录音一边播放。使用AndioRecord录音和使用AudioTrack回放。参考了网上一位开发者的例子代码开发,最后会给出相关Demo。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、AndioRecord类介绍 AndioRecord类的主要功能是让各种JAVA应用能够管理音频资源,以便它们通过此类能够录制平台的声音输入硬件所收集的声音。此功能的实现就是通过”pulling同步”(reading读取)AudioRec... 阅读全文

posted @ 2013-08-07 21:00 泡泡糖 阅读(35506) 评论(7) 推荐(1) 编辑

摘要:今天工作上需要做一个一边录音一边播放的功能,大致原因是有一个外部设备输入音频到我们机器,然后我们机器需要马上把音频播放出来。所以了解了一些有关录音和播放的知识。接到这个任务的第一反应就是看看Android源码里面的录音Demo,因此今天针对Android的录音demo程序讲解一些录音和播放相关知识。 今天主要讲解一下使用MediaRecorder 实现录音,主要是参照Android官网介绍来说明。 今天讲的并不能实现一边录音一边播放,下一篇文章我再说如何解决这问题。下面是我们今天要讲解的Mediarecorder的状态机图。摘录自Android官网。(PS:新建的QQ群,有兴趣可以加入... 阅读全文

posted @ 2013-08-06 21:25 泡泡糖 阅读(17291) 评论(3) 推荐(1) 编辑

摘要:上一篇讲了VLC整个程序的模块划分和界面主要使用的技术,今天分析一下VLC程序初始化过程,主要是初始化界面、加载解码库的操作。今天主要分析一下org.videolan.vlc.gui.MainActivity类,这个是VLC的整个程序入口。当然,严格来说,整个程序入口是VLCApplication类,因为VLC重载了Application,在我分析过的代码里面,貌似稍微复杂一点的程序,都喜欢重载Application。我自己写的一些程序也喜欢重载Application,因为可以提供一些全局功能和方便多页面数据交互。 给出上一篇的截图,方便后面讲解程序初始化。(PS:新建的QQ群,有兴趣可... 阅读全文

posted @ 2013-08-05 08:56 泡泡糖 阅读(8536) 评论(4) 推荐(2) 编辑

摘要:最近因为一个新项目需要一个多媒体播放器,所以需要做个视频、音频、图片方面的播放器。也查阅了不少这方面的资料,如果要从头做一个播放器工作量太大了,而且难度也很大。所以最后选择了VLC作为基础,进行二次开发。选择VLC的原因有两个,第一:VLC在其他平台很成熟,解码器方面支持很完善。第二:VLC已经实现了完整的视频播放和音频播放功能。开发速度可以加快很多。 下面给出两张截图,主要是为了方便后面讲解程序结构使用,可以对照着图片看。界面和原版VLC差不多,我只是把ActionBar和视频列表做了一些调整。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、背景... 阅读全文

posted @ 2013-08-04 10:03 泡泡糖 阅读(15164) 评论(3) 推荐(2) 编辑