摘要:
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
心随灵动
阅读(4538)
推荐(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
心随灵动
阅读(485)
推荐(1)
摘要:
方法:修改./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
心随灵动
阅读(11690)
推荐(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
心随灵动
阅读(637)
推荐(0)
摘要:
Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件, 完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编号,如硬盘的主设备号是3。 Linux为所有的设备文件都提供了统一的操作函数接口,方法是使用数据结构struct file_operations。这个数据结构中包括许多操作函数的指针,如open()、close()、read()
阅读全文
posted @ 2011-12-14 10:10
心随灵动
阅读(6391)
推荐(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
心随灵动
阅读(16294)
推荐(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
心随灵动
阅读(8401)
推荐(1)
摘要:
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
心随灵动
阅读(7644)
推荐(1)
摘要:
希望大家一起努力,共同分享一些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
心随灵动
阅读(874)
推荐(0)
摘要:
一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。例如,你不需要在你的Android.mk中 列出头文件和依赖文件。NDK编译系统将会为你自动处理这些问题。这也意味着,在升级NDK后,你应该得到新的toolchain/platform支 持,而且不需要改变你的Android.mk文件。先看一个简单的例子:一个简单的"hello world",比
阅读全文
posted @ 2011-11-28 17:00
心随灵动
阅读(597)
推荐(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
心随灵动
阅读(483)
推荐(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
心随灵动
阅读(833)
推荐(0)
摘要:
(1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。(2)register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。(3)static 常见的两种用途: 1>统计函数被调用的次数; 2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的处理器开销的,特别是数组等含有较多元素的存储类型。在一些含有较多的变量并且被经常调用的函数中,可以将一些数组声明为static类型,...
阅读全文
posted @ 2011-11-06 21:59
心随灵动
阅读(592)
推荐(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
心随灵动
阅读(724)
推荐(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
心随灵动
阅读(698)
推荐(0)
摘要:
C# int.ToString()2007-12-27 10:14格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化。我们使用格式字符串指定格式。格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数。格式说明符说明示例输出C货币2.5.ToString("C")¥2.50D十进制数25.ToString("D5")00025E科学型25000.ToString("E")2.500000E+005F固定点25.ToString(&quo
阅读全文
posted @ 2011-10-19 09:38
心随灵动
阅读(3415)
推荐(0)
摘要:
通常我们并不以root身份登录,但是当我们执行某些命令 (command)时需要用到root权限,我们通常都是用"sudo command"来执行command。由于使用Ubuntu,所以经常都都用sudo,而使用sudo时,又得输入密码,所以我就寻找sudo不输入密 码的方法。前阵子google了一下,很容容易找到一个方法,但是对其不够理解,今天,仔细研究了一下/etc/sudoers这个文件,对于如何实现自 己的需求就非常清楚了。网上说看到的资料往往写得不清楚,所以我根据自己的需求好好整理了一下。假设我的用户名为jay(属于 admin组),使sudo不用密码的方法如下
阅读全文
posted @ 2011-10-17 23:16
心随灵动
阅读(7596)
推荐(0)
摘要:
1.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false;2.得到当前选定记录某字段的值 sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();3.数据只读 gridView1.OptionsBehavior.Editable=false;4.不显示MasterDetailView gridView1.OptionsDetail.EnableMasterViewMode=false;5.修改最上面的GroupPanel内容 gridView1.Gr
阅读全文
posted @ 2011-10-17 12:00
心随灵动
阅读(1136)
推荐(0)
摘要:
1.安装VMTools2.设置共享文件之后在/mnt/hgfs文件夹下若找不到共享文件==>3.安装工具Shell代码sudoapt-getinstallopen-vm-dkms4.安装过程中选择“y“5.执行Shell代码sudomount-tvmhgfs.host://mnt/hgfs
阅读全文
posted @ 2011-10-17 09:00
心随灵动
阅读(317)
推荐(0)
摘要:
这里说明,Ubuntu中系统没有了RH系统中的chkconfig命令 !可用一些小工具来管理Ubuntu的启动选项:小工具rcconf:#sudo apt-get rcconf#sudo apt-get install rcconfroot 下运行:#sudo rcconf功能更全的工具:sysv-rc-conf#sudo apt-get update#sudo apt-get install sysv-rc-conf运行:#sudo sysv-rc-conf也可以直接加入启动程序,例如把/etc/init.d/red5加入到系统自动启动列表中:#sudo sysv-rc-conf red5
阅读全文
posted @ 2011-10-16 23:28
心随灵动
阅读(14393)
推荐(0)
摘要:
在使用.Net Framework编写窗体应用程序的时候,有时有需要响应窗体的按键消息。 当窗体上没有任何其他控件的时候,窗体是可以直接响应这些消息的。但是当窗体上有其他控件时,会发现窗体再也不会响应这些消息了,因为这些消息都由其上的控件所处理掉并且不再发给父窗体。但是响应窗体上的按键消息是很有必要的。Form类有一个KeyPreview的属性,可以让它接收得到按键消息。它的定义如下: KeyPreview的属性 获取或设置一个值,该值指示在将键事件传递到具有焦点的控件前,窗体是否将接收此键事件。 命名空间:System.Windows.Forms 程序集:System.Windows.For
阅读全文
posted @ 2011-10-13 17:37
心随灵动
阅读(1549)
推荐(1)
摘要:
与网上其它关于 DevExpress 汉化的文章不同,本文提供了DevExpress WinForm 汉化和 WebForm(ASPxControls) 汉化的最简单最实用的方法,能让你快速实现对DevExpress 的汉化。同时也说明了使用原始 .resx 文件实现汉化的方法。WebForm(ASPxControls) 汉化效果图WinForm 汉化效果图如何实现上述的汉化呢?DevExpress 汉化总结下来一般分三种形式: 一、利用已经汉化好的资源包; 二、使用本地对象类,利用代码汉化; 三、资源包和代码结合。 本文只讲述用汉化好的资源包进行汉化的方法,因为此种方法最简单实用。1. W.
阅读全文
posted @ 2011-10-10 16:34
心随灵动
阅读(975)
推荐(1)
摘要:
You can set the selected index property of the RepositoryItemComboBox in the InitNewRow event as follows:private void gridView_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e) { gridView.SetRowCellValue(e.RowHandle, viewAddColumns.Columns["colFieldName"], (((
阅读全文
posted @ 2011-10-10 15:25
心随灵动
阅读(1965)
推荐(0)
摘要:
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。本文主要参考曹元其先生的《Linux必学的60个命令》。◆ 安装和登录命令:login、shutdown、halt、reboot、install、mou
阅读全文
posted @ 2011-10-10 11:13
心随灵动
阅读(695)
推荐(0)
摘要:
在C#中,如何将一个int转换成一个bytearray,又如何将一个bytearray转换成一个int至少可以通过三种方法来进行转换。在.NET Framework类库的System名字空间中有个叫做BitConverter的类,它是专门用来进行这种转换的。它有一个GetBytes方法,对于大多数简单的类型来说,该方法都被重载了,它可以返回一个bytearray来保存你传递的值。它也有几个ToTypeName方法用来将一个bytearray转换成一个基本类型(primitive type):byte[] b = BitConverter.GetBytes( 0xba5eba11 );//{0x
阅读全文
posted @ 2011-10-09 15:41
心随灵动
阅读(954)
推荐(0)
摘要:
C++ C#=====================================WORD ushortDWORD uintUCHAR int/byte 大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyteUCHAR* string/IntPtrunsigned char* [MarshalAs(UnmanagedType.LPArray)]byte[]/?(Intptr)char* stringLPCTSTR stringLPTSTR [MarshalAs(UnmanagedType.LPTStr)] stringlong i...
阅读全文
posted @ 2011-09-22 09:37
心随灵动
阅读(710)
推荐(0)
摘要:
对于串口编程,熟悉的应该觉得不困难。.NET下就更容易了,废话也没了。开始吧。1.虚拟串口软件由于手上没有串口硬件,所以在网上找了一个 VSPM 虚拟串口软件 ,据说是免费的。下载地址:http://www.skycn.com/soft/30517.html刚开始也不知道怎么用,摸索了一下,终于成功。安装以后工作模式选择应该为:VSPM运行在Server模式,支持Client模式设备然后是使用设备探测器简历虚拟串口。(如果选择 建立默认的串口,软件就会自动帮你建立四个虚拟串口的)之后就是新增虚拟串口 串口选COM2,选择监听的IP地址:192.168.1.111 ,Client模式的设备尝试连
阅读全文
posted @ 2011-09-20 18:02
心随灵动
阅读(537)
推荐(0)
摘要:
http://cid-47027e68f36cbaf5.spaces.live.com/blog/cns!47027E68F36CBAF5!308.entryMFC界面库: GUIToolkit 和 SYGUI官网:http://www.beyondata.com/GUIToolkithttp://www.codeproject.com/KB/library/guitoolkit.aspx?display=PrintAll&fid=4311&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=
阅读全文
posted @ 2011-09-06 15:31
心随灵动
阅读(1443)
推荐(0)
摘要:
CxImage CxImage是C++实现的功能强大的、能处理多种文件格式的图像管理类。它能够简单快速的实现图像的导入、保存、显示和变换。 为什么使用CxImage u 它是平台无关的 u 它是自由软件、免费的、开源的 u 支持多种平面格式:BMP、GIF、ICO、TGA、JPEG、PCX、PNG、TIFF、MNG、RAS等,还有更多! u 功能强大:几何变换、图像处理、图像格式转换等。 u 使用简单:下面的入门教程会给你展示这一点。 CxImage的功能Constructors 构造函数Initialization 初始化File 文件操作,主要是编解码Generic 图像基本变化DSP 图
阅读全文
posted @ 2011-09-06 09:16
心随灵动
阅读(575)
推荐(0)
摘要:
在语言传输中,如果每次都把数据包发送影响流量,可以再发送前对数据包进行静音检测,如果是静音就不发送原理 :检测数据是否都在一个范围内,统计不在范围内的数据量,就算百分比,如果打印某个指定的比例就认识是静音//适合8位音频function TWaveIn.DetectSilence(Data: PByte; DataLen: DWORD): Boolean;constTHRESHOLD:DWORD =10;//范围HITPERCENT:DWORD=85;//错误率vari:Integer;dwHit:DWORD;begindwHit:=0;for i:=0 to DataLen-1 dobegi
阅读全文
posted @ 2011-08-31 17:51
心随灵动
阅读(1570)
推荐(0)