- 博客(37)
- 资源 (5)
- 收藏
- 关注
原创 linux 64位系统下安装flash player插件
对像我这样用惯了xp而为了生活不得不工作在ubuntu11.04 64位系统下面的程序猿们来说,总是因为不熟悉系统而遇到诸多不便。工作过劳想要忙里偷闲,看看湖人的比赛,打开直播网页去露给我一副如下黑框:按照他的指示猛点,总是得到一个不了了之的结果。心有不甘,于是找插件,找安装方法,现记录下来以备后需:1)下载64位flashplayer插件,可在此下载(偷偷赚俩金币,为省金币也可到官网
2013-12-11 16:01:53 4327
原创 MT6572平台加入呼吸灯功能——编写APP Demo
package com.along.breathleds;import android.app.Activity;import android.os.Bundle;import android.os.RemoteException;import android.os.ServiceManager;import android.widget.SeekBar;import android
2013-11-11 17:40:26 2603
原创 MT6572平台加入呼吸灯功能——编写Framework层接口
在Android中,硬件服务一般运行在一个独立进程中为各种应用程序提供服务(也有特别的,如上一篇开头我们说的上层应用也可以单独写自己的JNI层代码,那样书写比较简单,但是只能为该应用提供服务),因此,APP与这些硬件服务之间的通信需要通过代理来实现。一)添加AIDL接口文件 进入frameworks/base/core/java/android/os/目录,新增IBreathLeds
2013-11-11 17:09:57 3455
原创 MT6572平台加入呼吸灯功能——编写JNI
只完成驱动层和HAL层的开发,还不足以让上层APP访问到我们的硬件设备,还必须编写JNI方法做好C/C++和Java代码的衔接。这里进行的JNI层开发以及下一篇将要讲述的Framework层API接口的开发是严格按照android推荐的框架格式来进行的。上层应用也可以单独写自己的JNI层代码来访问硬件设备。一)编写调用HAL模块的Service文件com_android_server_Brea
2013-11-11 16:31:54 2194
原创 MT6572平台加入呼吸灯功能——编写HAL模块
HAL即硬件抽象层,是Google为满足那些不想开源的Linux驱动开发者的要求在Android系统加入的一个层次结构。HAL的源代码存储位置并不固定,一般会存储在hardware/libhardware/目录中,最终编译生成的.so文件主要放在system/lib/hw目录。下面为详细添加方法:一)编写hw_breath_leds.h头文件 进入hardware/libhardwa
2013-11-11 15:24:21 4174
原创 MT6572平台加入呼吸灯功能——编写linux驱动
一)编写驱动核心源代码。 即编写linux驱动程序,运行于内核空间的代码。这部分基本上和android没什么关系,完全按照linux驱动编程格式来的。包含一个*.c,一个*.h(可有可无),一个Kconfig。一个Makefile。 进入kernel/drivers/目录,新建breath_leds目录,进入该目录,新建breath_leds.c:#include #
2013-11-11 13:00:17 6289 2
原创 MT6572平台加入呼吸灯功能——控制芯片简介
简介:这里我们使用了一片SN3112来控制led灯的亮灭,SN3112是一片12路led控制芯片。每路单独256级亮度可控,CPU通过I2C接口对其进行编程控制。通过将SDB脚拉低或者软件设置可关断芯片,进入低功耗模式。 SN3112寄存器功能列表: 地址名称功能默认值00h关断寄存器软件关断SN3112(0x00为关断,0x01为打开
2013-11-11 11:18:30 4304
原创 编译Android模拟器内核goldfish
上一篇讲述了怎么下载android内核,这篇以编译google为android模拟器提供的内核goldfish为例,记录下我的编译过程。一、下载交叉编译器 新建一个目录android_tools用于存放交叉编译器,然后cd到该目录下,执行如下指令: git clone https://android.googlesource.com/platform/
2013-06-08 15:51:43 5910
原创 ubuntu12.04下下载android内核源码
环境:VMWare虚拟机+ubuntu12.04 下载前的动作就不说了,无非是安装git、repo之类,具体看官网http://source.android.com/source/downloading.html。 注意:虚拟机网络须配置成NAT类型,如下图,host-only类型没试过,刚开始使用桥接类型(Bridged)时,下载一点点就卡死在那,打死都不动了。
2013-06-07 18:55:34 1790 6
原创 编写Linux驱动八步骤
一、建立Linux驱动框架(装载、卸载Linux驱动) Linux内核在使用驱动时首先要装载驱动,在装载过程中进行一些初始化动作(建立设备文件、分配内存等),在驱动程序中需提供相应函数来处理驱动初始化工作,该函数须使用module_init宏指定;Linux系统在退出是需卸载Linux驱动,卸载过程中进行一些退出工作(删除设备文件、释放内存等),在驱动程序中需提供相应函数来处理退出工作,
2013-06-07 10:47:16 2889
原创 android下PreferenceScreen 加载流程
前面引入主题的废话不多说,也不会说,Preference的加载过程我们就从addPreferencesFromResource()方法开始研究。 addPreferencesFromResource()方法在PreferenceActivity类和PreferenceFragment类(Android3.0以后才有)中都有实现,两个中内容是差不多的(只是PreferenceActivit
2013-05-31 18:09:03 10215 1
原创 动画旋转示例代码
class MyAnimation extends Animation {private int centerX, centerY;private Camera camera = new Camera();@Overrideprotected void applyTransformation(float interpolatedTime,Transformation t)
2013-03-22 19:11:38 791
原创 android4.1上去除SwitchPreference中Switch控件与Preference的绑定响应
SwitchPreference是android4.0新加的一个控件,类似于CheckBoxPreference,继承自TwoStatePreference类,顾名思义,有两种状态,并含有一个Switch控件。 当我们直接调用SwitchPreference控件时,会发现无论我们点击SwitchPreference控件的任何区域,Switch状态都会改变。所以,当我们想要一种效果:只是点
2013-01-11 15:27:04 17265 5
转载 Android Bitmap和Canvas学习笔记
位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户是最有吸引力的。1. 从资源中获取位图可以使用BitmapDrawable或者BitmapFactory来获取资源中的位图。当然,首先需要获取资源:Resources res=getResources();复制代码使用BitmapDrawable获取位图 1. 使用
2012-11-01 16:15:13 904
翻译 API: com.graphics.Camera
综述一个Camera对象可以用来计算3D转换,并生成一个矩阵模型(matrix)应用于Canvas等对象。摘要构造器Camera()创建一个新的camera对象,不包含任何初始转换公共方法voidapplyToCanvas(Canvas canvas)计算出与当前转换过程相一致的matr
2012-10-23 17:21:54 1017
转载 onAttachedToWindow () 和 onDetachedFromWindow () ; 以及更新视图的函数ondraw() 和dispatchdraw()的区别
protected void onAttachedToWindow() This is called when the view is attached to a window. At this point it has a Surface and will start drawing. Note that this function is guaranteed to be ca
2012-10-16 19:00:28 6487
原创 android属性收集
1,android:ellipsize TextView内容过长时的处理方式: android:ellipsize="start" android:ellipsize="end" android:ellipsize="middle" android:e
2012-10-16 09:52:50 2494
原创 java中utf-8编码的byte数组转换成String类型代码
private String utfToString(byte[] data) { String str = null; try { str = new String(data, "utf-8"); } catch (UnsupportedEncodingException e) { } return str; }
2012-09-28 17:23:53 24090 1
原创 linux历程--管道通信
1)管道概念 管道是单向的,先进先出的(FIFO),它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道头部读出数据。2)管道创建 管道包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者可用于运行于同一系统中任意两个进程间的通信。 无名管道由pipe()函数创建: int p
2012-09-27 22:31:55 1279
原创 linux历程--进程通讯概述
1)进程间通讯目的 1,数据传输:一个进程需要将它的数据发送给另一个进程 2,资源共享:多个进程间共享同样的资源 3,通知事件:一个进程需要向另一个或一组进程发送消息,通知他们发生了某种事件 (如进程结束等) 4,进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制 进程希望能够拦截另
2012-09-27 22:29:56 755
原创 android中禁止GridView上下滑动的方法
1,定义一个类继承GridView,如下:public class SourcePanel extends GridView { public SourcePanel(Context context) { super(context); } public SourcePanel(Context contex
2012-09-21 15:23:36 13616
翻译 Android视图动画(View Animation)
你可以使用视图动画系统(View Animation)去处理渐变动画(tweened animation,也称补间动画)。补间动画常用根据一些动画信息(如起始点、终点、大小、旋转和其他一些常见的动画因素)计算动画。 补间动画可以在一个View对象上处理一系列简单的变换(位置,大小,旋转和透明度)。因此,如果你有一个TextView对象,你可以移动,旋转,伸缩其字体。如果它还包含一个背景图
2012-09-19 13:54:56 1490
翻译 Android图形动画概述
动画 android的framework提供了两种动画系统:属性动画(Property animation,在Android3.0以后才引入)和视图动画(View animation)。选择这两种动画系统都是可行的,但是一般情况下,理应优先选择属性动画,因为它更加灵活,并且提供了更多的特性。除了这两种动画系统,你同样可以利用图片动画(Drawable animation):装载图片资源
2012-09-15 15:48:48 978
原创 串口的打开与关闭的jni层代码
1,先上代码(jni层的serial_port.c):#include #include #include #include #include #include #include #include "android/log.h"static const char *TAG="serial_port";#define LOGI(fmt, args...) __
2012-09-14 11:58:16 2468
原创 随笔--android中修改SeekBar控件默认显示
布局文件中相关代码如下: android:id="@+id/seekbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="9dip"
2012-09-05 23:01:29 1929
原创 linux历程--进程控制编程
1)获取ID #include #include //获取本进程ID pid_t getpid(void) //获取父进程ID pid_t getppid(void)2)进程创建-fork #include pid_t fork(void) 功能:创建子进程。fork神奇
2012-09-04 23:04:06 585
原创 随笔--Java中字符串转换成byte型数据的方法
如题问题(如将String型数据“fe”转换成byte型数据0xfe等)。方法如下(因同事需要而网上找不到答案所以我临时写了一个,时间仓促,可能不够优化): private byte getByteFromString(String str) { byte retByte = 0; int len = str.leng
2012-09-03 18:52:56 1493
原创 linux历程--进程控制理论基础
1)定义:进程是一个具有一定独立功能的的程序的一次运行活动。2)特点:动态性、并发性、独立性、异步性3)进程经典三状态:就绪态、执行态、阻塞态。 进程创建后首先处于就绪态; 就绪态通过进程调度进入执行态; 执行态因为时间片完回到就绪态; 执行态通过I/O请求进入阻塞态(如访问串口时该串口正在读取数据); 阻塞态因为I/O完成
2012-08-31 23:38:39 641
原创 随笔--android上遇到的易忽视的区别
1)android:src 与 android:background 的区别: 今天在设置ImageView属性的时候看到src和background属性,以前就以为是一前一后两层图案的区别,总以为如果只要一层图案,src和background二选一即可,今天发觉不是这样的。android:layout_width和android:layout_height等属性是针对src图案的
2012-08-30 09:27:43 867
原创 linux历程--时间编程
1)时间类型 UTC:世界标准时间,即格林威治标准时间(GMT); Calendar Time:日历时间,是用“从一个标准时间点(如:1970年1月1日0点)到此时经历的秒数”来表示的时间。2)时间获取 #include // typedef long time_t time_t time(time_t *
2012-08-26 12:11:30 650
原创 linux历程--文件编程(系统调用)
1)通常需要包含的头文件: #include #inclide #include2)系统调用-创建 int creat(const char *filename, mode_t mode); 参数 filename:要创建的文件名(包含路径,缺省为当前路径) mode:创建模式,常见创建模式:S_IRUSR
2012-08-26 12:05:37 627
原创 linux历程--Makefile工程管理
1)简介:make在执行时,需要一个名为Makefile的文件,Makefile文件描述了整过工程的编译,连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行行文件。2)规则:用于说明如何生成一个或多个目标文件。 规则格式: target(目标):prerequisites(依赖)
2012-08-26 11:57:29 1031
翻译 随笔--为android模拟器配置图形加速器
警告:在SDK Tools Revicion 17版本中,模拟器的图像加速器性能只是测试阶段,在使用该特性时要警惕兼容性和错误发生。模拟器的图形加速器利用的是开发计算机上管理图形的硬件性能,特别是GPU(图形管理单元),从而使屏幕刷屏更快。为了使用图形加速器的性能,必须确保拥有如下版本的android开发工具:(1)Android SDK Tools, Revision 17 或者更高
2012-08-24 15:55:26 3741
原创 linux历程--GDB调试
1)GDB主要完成三方面功能: 启动被调试程序; 让被调试程序在指定位置停住; 当程序被停住时,可以检查程序状态(如变量值)。2)GDB命令: 启动GDB(两种方法): gdb 调试程序名 (如: gdb helloword) gdb file
2012-08-24 12:49:32 630
原创 linux历程--GCC程序编译
1)GCC编译器能将C、C++语言源程序、汇编语言编译、链接成可执行文件。2)GCC通过后缀名来区分输入文件的类别: .c为后缀:C语言源代码文件 .a为后缀:由目标文件构成的库文件 .C,.cc或.cxx为后缀:C++源代码文件 .h为后缀:头文件 .i为后缀:已经预处理过的C源代码文件 .ii为后缀:已经预处理过的C++源代码文件
2012-08-24 12:46:39 513
原创 linux历程--shell脚本基本编程
1)shell脚本第一行必须是如下格式: #!/bin/sh 符号#!用来指定该脚本文件的解析程序。上面就是使用/bin/sh来解析该脚本, 编辑好后,要执行该脚本,还必须有可执行属性: chmod +x filename注:可在终端输入 cat /etc/passwd 指令查看linux为各用户预设的shell解析器。如: root:x:
2012-08-24 12:43:15 702
原创 随笔——USB的CRC算法
USB说明书中列举了两种生成多项式(generator polynomials)即除数多项式:一种是针对令牌包(tokens)的x5+x2+1,另一种是针对数据包的x16+x15+x2+1,由于余数要永远比除数小一阶的缘故,所以令牌(tokens)CRC是5bit组合,数据CRC是16bit组合。两种CRC计算方法一样,步骤如下:步骤一:创建被除数:D(x) = xdF(x) +
2012-08-15 10:21:53 5473 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人