摘要:Android MediaPlayer 播放assets 文件夹下面的视频报错 报下面的错: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compre... 阅读全文
posted @ 2016-01-22 13:28 心随灵动 阅读 (1519) 评论 (0) 编辑
摘要:本文结合源代码和实例来说明TabHost的用法。使用TabHost可以在一个屏幕间进行不同版面的切换,例如android自带的拨号应用,截图:查看tabhost的源代码,主要实例变量有:privateTabWidgetmTabWidget;privateFrameLayoutmTabContent;... 阅读全文
posted @ 2014-05-27 10:48 心随灵动 阅读 (1348) 评论 (0) 编辑
摘要:apt-get install mingw32make USE_MINGW=y adb 阅读全文
posted @ 2013-02-19 10:55 心随灵动 阅读 (526) 评论 (0) 编辑
摘要:本文介绍在linux中头文件的搜索路径,也就是说你通过include指定的头文件,linux下的gcc编译器它是怎么找到它的呢。在此之前,先了解一个基本概念。 头文件是一种文本文件,使用文本编辑器将代码编写好之后,以扩展名.h保存就行了。头文件中一般放一些重复使用的代码,例如函数声明、变量声明、常数定义、宏的定义等等。当使用#include语句将头文件引用时,相当于将头文件中所有内容,复制到#include处。#include有两种写法形式,分别是:#include <> : 直接到系统指定的某些目录中去找某些头文件。#include “” : 先到源文件所在文件夹去找,然后再到系 阅读全文
posted @ 2012-12-25 14:19 心随灵动 阅读 (9223) 评论 (0) 编辑
摘要:1. 会话配置:包括主机地址、端口、类型:示例【192.168.9.120:22 SSH】2. 窗口回滚设置:设置得越大,可回滚的记录越多3. 配置终端显示字体,及大小,为了使终端支持中文,以及支持中文输入,可以设置字体:fixedsys,字号:12号,字符集:chinese_gb2312字体品质:cleartype,文本与窗口边界的距离:34. 配置终端支持中文字符,选择UTF-8字符集,选择unicode,另外要支持中文输入,还必须在登陆后,在shell下输入:export LC_ALL='zh_CN.utf8',或是如下图设置5. 配置选择项6. 使用ssh登录到Linu 阅读全文
posted @ 2012-12-21 10:38 心随灵动 阅读 (300) 评论 (0) 编辑
摘要:Introduction常常我们开 发程序的时候我们不需要系统唤醒系统锁屏功能,比如我们在做xxxNowTV或XXX播放器这样的程序,用户有时候在看电视或视频的时候不希望系统的锁屏 功能启动,既不想锁频,然而系统却在我们看电视或者视频的时候出来个锁屏的界面进行锁频拉,我们还要想继续看的话还要去解锁,这样好麻烦,不是我们想要 的,那我们该怎么做呢,其实很简单,我这里只讲其中的两种一:我们只要在程序中用代码实现。代码如下:[java:showcolumns:firstline[1]]view plaincopy·······&# 阅读全文
posted @ 2012-12-19 15:55 心随灵动 阅读 (635) 评论 (0) 编辑
摘要:U-boot的环境变量值得注意的有两个: bootcmd 和bootargs。u-bootcmd 前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。u-bootargs bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。bootargs的种类非常非常的多,我们平常只 是使用了几种而已,感兴趣的可以看看这篇文章说的很全:http://blog.chinaunix.net/u2/79570 /showart_1675071.html。b.. 阅读全文
posted @ 2012-10-28 23:42 心随灵动 阅读 (383) 评论 (0) 编辑
摘要:Git Community Book 中文版 网址:http://gitbook.liuhui998.com/index.html 阅读全文
posted @ 2012-07-08 21:59 心随灵动 阅读 (378) 评论 (0) 编辑
摘要:if条件thenCommandelseCommandfi别忘了这个结尾If语句忘了结尾fitest.sh: line 14: syntax error:unexpected end of fiif 的三种条件表达式ifcommandthenif函数then命令执行成功,等于返回0 (比如grep ,找到匹配)执行失败,返回非0 (grep,没找到匹配)if [ expression_r_r_r]then表达式结果为真,则返回0,if把0值引向thenif test expression_r_r_rthen表达式结果为假,则返回非0,if把非0值引向then[ ] &&——快捷i 阅读全文
posted @ 2012-07-05 10:59 心随灵动 阅读 (48151) 评论 (0) 编辑
摘要:文章出处:http://www.cnblogs.com/xl19862005作者:Xandy1 总述为了方便客户日后的固件升级,本周研究了一下android的recovery模式。网上有不少这类的资料,但都比较繁杂,没有一个系统的介绍与认识,在这里将网上所找到的和自己通过查阅代码所掌握的东西整理出来,给大家一个参考!2 Android启动过程在这里有必要理一下android的启动过程:图1 android启动过程系统上电之后,首先是完成一系列的初始化过程,如cpu、串口、中断、timer、DDR等等硬件设备,然后接着加载 boot default environmet,为后面内核的加载作好准备 阅读全文
posted @ 2012-07-04 23:59 心随灵动 阅读 (1895) 评论 (0) 编辑
摘要:from:http://rootfs.wordpress.com/2010/07/23/android-enable-home-screen-lock-and-home-key/The lock pattern does not take effect after setting. And the HOME key does not work.1. frameworks/base/policies/phone/com/android/internal/policy/impl/KeyguardViewMediator.java.In private void doKeyguard() routi 阅读全文
posted @ 2012-06-11 22:28 心随灵动 阅读 (615) 评论 (0) 编辑
摘要:相对于linux来说,udev还是一个新事物。然而,尽管它03年才出现,尽管它很低调(J),但它无疑已经成为linux下不可或缺的组件了。udev是什么?它是如何实现的?最近研究Linux设备管理时,花了一些时间去研究udev的实现。udev是什么?u是指user space,dev是指device,udev是用户空间的设备驱动程序吗?最初我也这样认为,调试内核空间的程序要比调试用户空间的程序复杂得多,内核空间的程序的BUG所引起的后果也严重得多,device driver是内核空间中所占比较最大的代码,如果把这些device driver中硬件无关的代码,从内核空间移动到用户空间,自然是一个 阅读全文
posted @ 2012-05-27 22:54 心随灵动 阅读 (486) 评论 (0) 编辑
摘要:CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped).有些体系结构的CPU(如,PowerPC、m68k等)通常只实现一个物理地址空间(RAM)。在这种情况下,外设I/O端口的物理地址就被映射到CPU的单一物理地址空间中,而成为内存的一部分。此时,CPU可以象访问一个内存单元那样访问外设I/O端口,而不需要设立专门的外设I/O指令。这就是所谓的"内存映射方式"(Memory-mapped)。 而另外一些体系结构的CPU(典型地如X86)则为外设专门实现了一个单独地地址空间,称为&quo 阅读全文
posted @ 2012-05-25 17:57 心随灵动 阅读 (734) 评论 (0) 编辑
摘要:转自 :http://blog.csdn.net/liuhe688/article/details/6955668BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等。Android中的广播机制设计的非常出色,很多事情原本需要开发者亲自操作的 阅读全文
posted @ 2012-05-21 18:27 心随灵动 阅读 (213) 评论 (0) 编辑
摘要:Environment 常用方法:* 方法:getDataDirectory()解释:返回 File ,获取 Android 数据目录。* 方法:getDownloadCacheDirectory()解释:返回 File ,获取 Android 下载/缓存内容目录。* 方法:getExternalStorageDirectory()解释:返回 File ,获取外部存储目录即 SDCard* 方法:getExternalStoragePublicDirectory(String type)解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件* 方法:getExternal 阅读全文
posted @ 2012-05-18 15:24 心随灵动 阅读 (2937) 评论 (0) 编辑
摘要:PackageInstaller 原理简述应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。Android应用安装有如下四种方式1. 系统应用安装――开机时完成,没有安装界面2. 网络下载应用安装――通过market应用完成,没有安装界面3. ADB工具安装――没有安装界面。4. 第三方应用安装――通过SD卡里的APK文件安装,有安装界面 阅读全文
posted @ 2012-05-17 17:55 心随灵动 阅读 (3310) 评论 (0) 编辑
摘要:以前在看Linux代码时,就对它的结构体初始化写法感到奇怪,所有的初始化代码都写清了变量名,并且变量名前面还有一个诡异的点。最近学习Linux设备驱动,又遇到了,就查了一下,发现自己的知识果然纰漏不少,此种初始化写法并不是什么特殊的代码风格,而是所谓的C语言标记化结构初始化语法(designated initializer),而且还是一个ISO标准。[cpp]view plaincopy#include<stdio.h>#include<stdlib.h>structoperators{void(*read1)(char*);void(*read2)(char*);vo 阅读全文
posted @ 2012-05-10 18:21 心随灵动 阅读 (228) 评论 (0) 编辑
摘要:方法:修改./default.prop把ro.secure设为0,persist.service.adb.enable设为1,adbd进程就会以root用户的身份启动。原理:可以看一下Android系统根目录下的/init.rc的片段:... ...# adbd is controlled by the persist.service.adb.enable system propertyservice adbd /sbin/adbd disabled# adbd on at boot in emulatoron property:ro.kernel.qemu=1 start adbdon pr 阅读全文
posted @ 2012-02-07 14:18 心随灵动 阅读 (7462) 评论 (0) 编辑
摘要:在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限,下面看例子:package org.thread.demo;class MyThread extends Thread{private String name;public MyThread(String name) {super();this.name = name;}public void run(){for(int i 阅读全文
posted @ 2012-01-31 11:14 心随灵动 阅读 (349) 评论 (0) 编辑
摘要:Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件, 完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编号,如硬盘的主设备号是3。 Linux为所有的设备文件都提供了统一的操作函数接口,方法是使用数据结构struct file_operations。这个数据结构中包括许多操作函数的指针,如open()、close()、read() 阅读全文
posted @ 2011-12-14 10:10 心随灵动 阅读 (4578) 评论 (0) 编辑
摘要:通过查看android源码目录下的build/envsetup.sh文件,可知:- m: Makes from the top of the tree.- mm: Builds all of the modules in the current directory.- mmm: Builds all of the modules in the supplied directories.要想使用这些命令,首先需要在android源码根目录执行. build/envsetup.shm:编译所有的模块mm:编译当前目录下的模块,当前目录下要有Android.mk文件mmm:编译指定路径下的模块,指定 阅读全文
posted @ 2011-12-05 16:28 心随灵动 阅读 (9484) 评论 (0) 编辑
摘要:本文简要分析一下build.prop是如何生成的。Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product/<board>/system/目录下。在Android运行时刻可以通过property_get()[c/c++域] / SystemProperties_get*()[Java域]读取这些属性值。build.prop的生成是由make系统解析build/core/Makefile完成。1)Makefile中首先定义各种变量,这 阅读全文
posted @ 2011-12-01 18:24 心随灵动 阅读 (6889) 评论 (0) 编辑
摘要:Android.mk脚本结构下面是main.mk文件包含关系,本文档主要说明的就是这些文件里到底做了什么。(这个文件被根目录下的makefile文件包含) 一. main.mk 1.检查版本号,设置环境变量(BUILD_SYSTEM)和缺省的目标。$(MAKE_VERSION) >= 3.81,BUILD_SYSTEM= build/core 2.包含文件BUILD_SYSTEM/config.mk。根据配置信息和主机目标机信息,设置一些变量。 3.包含文件BUILD_SYSTEM/cleanbuild.mk。如果当前配置改变,强制删除上次的编译结果4.包含文件OUT_DIR/... 阅读全文
posted @ 2011-12-01 16:11 心随灵动 阅读 (6289) 评论 (2) 编辑
摘要:希望大家一起努力,共同分享一些android技术牛人的博客,大家一起学习http://www.java2s.com/Open-Source/Android/android-core/platform-frameworks-base/com/android/server/SystemServer.java.htmhttp://blog.csdn.net/yili_xie/article/category/539284/2http://blog.csdn.net/a345017062/article/category/758727http://blog.csdn.net/maxleng/artic 阅读全文
posted @ 2011-12-01 14:58 心随灵动 阅读 (669) 评论 (1) 编辑
摘要:一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。例如,你不需要在你的Android.mk中 列出头文件和依赖文件。NDK编译系统将会为你自动处理这些问题。这也意味着,在升级NDK后,你应该得到新的toolchain/platform支 持,而且不需要改变你的Android.mk文件。先看一个简单的例子:一个简单的"hello world",比 阅读全文
posted @ 2011-11-28 17:00 心随灵动 阅读 (291) 评论 (0) 编辑
摘要:Ubuntu是最近很流行的一款Linux系统,因为Ubuntu默认是不启动root用户,现在介绍如何进入root的方法。(1)从user用户切换到root用户不管是用图形模式登录Ubuntu,还是命令行模式登录,我们会发现缺省的用户是user但是当我们需要执行一些具有root权限的操作(如修还系统文件)时,经常需要用sudo授权,感觉很麻烦此时我们可以切换到root用户,只需要简单的执行sudo su 即可注意: 出于安全考虑,默认时Ubuntu的root用户时没有固定密码的,它的密码是随机产生并且动态改变的,貌似是每5分钟改变一次,所以用su(switch user)是不可以的,因为我们不知 阅读全文
posted @ 2011-11-18 10:52 心随灵动 阅读 (208) 评论 (0) 编辑
摘要:惨痛教训:假设在test.h中定义了一个static bool g_test=false;若test1.c和test2.c都包含test.h,则test1.c和test2.c分别生成两份g_test,在test1.c 中置g_test=true,而test2.c中仍然为false并未改变!shit!!一、c程序存储空间布局C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内 阅读全文
posted @ 2011-11-06 22:27 心随灵动 阅读 (210) 评论 (0) 编辑
摘要:(1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。(2)register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。(3)static 常见的两种用途: 1>统计函数被调用的次数; 2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的处理器开销的,特别是数组等含有较多元素的存储类型。在一些含有较多的变量并且被经常调用的函数中,可以将一些数组声明为static类型,... 阅读全文
posted @ 2011-11-06 21:59 心随灵动 阅读 (280) 评论 (0) 编辑
摘要:转载自jjzhang166最终编辑jjzhang166http://hi.baidu.com/ah%5F%5Ffu/blog/item/57b76201e27095de267fb5d4.html终于下决心好好学习LINUX内核和驱动开发了,不怕千万人耻笑,勇敢将自己的学习过程写出来:1、关于目录 /lib/modules/2.6.9-42.ELsmp/build/ 这个是内核源码所在的目录 一般使用这样的命令进入这个目录:cd /lib/modules/$(uname -r)/build/ 这个目录实际上指向了:/usr/src/kernels/2.6.9-42.EL-smp-i6862、编译 阅读全文
posted @ 2011-10-26 16:14 心随灵动 阅读 (550) 评论 (0) 编辑
摘要:不同的操作系统,桌面的路径不尽相同,而且随着用户安装位置的不同也不同。C#可以从Windows注册表读取得到用户的特殊文件夹(桌面、收藏夹等等)的位置。代码如下:using Microsoft.Win32;namespace JPGCompact{ public partial class MainForm : Form { private void Test() { RegistryKey folders; folders = OpenRegistryPath(Registry.CurrentUser, @"... 阅读全文
posted @ 2011-10-20 11:15 心随灵动 阅读 (413) 评论 (0) 编辑