自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(351)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 CM android的CMUpdater分析(一)

(一):写在前面目前正在从事一个项目,该项目需要修改CM android的CMUpdater源码,将更新程序修改为面向我们项目的程序.我们使用平时的IDE无法看到一些界面等实时预览,所以我们准备使用eclipse来进行项目的修改.由于CMUpdater是系统应用,所以我们将CMUpdater导入到eclipse中的时候便会报错,其中包括android.jar中的hide api和internal a

2016-04-11 17:29:15 1727

原创 ListView实现物流追踪

目前我的一个项目中需要物流追踪界面实现,我想到时候ListView来实现物流追踪界面。下面我们先来看一下界面实现的效果:该效果完全是使用ListView来实现了,下面我们来看一下是如何实现的(一):布局ListView并编写Item布局首先需要在布局上面编写ListView:```<RelativeLayout xmlns:android="http://schemas.android.com/a

2016-03-24 10:53:51 4089 4

原创 验证的启动

介绍 Android 4.4和后续版本通过可选的dm-verity内核特征来支持验证启动,其会提供透明的块设备的完整性检查.dm-verity能帮助阻止root组件,该组件能够获取root特权.该实验特征能够帮助在启动设备的时候检查是否和上次使用过的一样. 带有root特权的聪明的恶意软件能够隐藏检测程序,因此能够隐藏他们自己.root软件可以这样做,因为他们比检测程序有更多特权,使得软

2016-02-25 16:42:49 2794

原创 android全磁盘加密

android 全磁盘加密 什么是全磁盘加密?全磁盘加密是使用一个密钥来为android设备上所有的用户数据加密的过程。一旦设备被加密,所有的用户创建的数据都将会在提交的磁盘之前自动加密,在读取之前都会自动解密。Android 5.0中添加了啥创建了快速加密,该加密方式仅仅加密在数据分区中使用块设备的数据来避免第一次启动耗费较长时间。仅仅ext4和f2fs文件系统支持快速加密。在首次启动的

2016-02-23 12:09:39 9921 6

原创 (八):构建WineLib DLL

(一):介绍出于某些原因,你可能会发现你想要和使用Windows DLL一样使用你的Linux库.对于这有一些原因如下:你正在支持一个使用多个第三方库的大应用.该项目在Linux中是可用的,但是你还没有准备直接链接到他作为一个Linux共享库.有一个定义好的可用的接口,并且有很多用于接口的解决办法.你仅仅有一个二进制Windows应用,他可以通过插件扩展,例如文本编辑器或IDE.处理这些问题

2016-02-20 14:19:41 2619

原创 (七):处理MFC

(一):简介为了能够在一个Winelib应用中使用MFC,你需要首先使用Winelib重新编译MFC。在理论上,你应该为Windows的MFC编写一个封装(如何编写在后面介绍)。但是,在实践中,对MFC来说,可能不是一个真正的解决方式:数量巨大的API使得编写封装的工作量很大进一步说,MFC包含大量的API,这些API在制作封装的时候处理起来是非常复杂的。即使你编写了封装,你也需要去修改MFC

2016-02-20 10:35:47 1465

原创 使用lex---01

(一)、写在前面lex是构建词法分析程序的工具。词法分析程序把随机输入流标记化,即将他拆分成词法标记。然后,可以进一步处理这种被标记化的输出,通常是由yacc来处理的,或者他就成为“最终产品”。当编写lex规范的时候,可以创建lex匹配输入所用的一套模式。每次匹配一个模式的时候,lex程序就调用我们提供的C代码来处理匹配的文本。采用这种方式,lex程序将输入拆分成成为标记的字符串。lex本身不产生可

2016-02-18 16:42:38 5416 1

原创 纯C实现的词法分析和lex实现的词法分析的对比

(一):写在前面在上面的学习当中,我们通过简单的lex例子,进一步扩展lex例子,通过和yacc的融合来进行简单英语语法分析。通过这几个例子,使我们深深的感受到lex和yacc的方便和强大功能。我们最终的目标是通过学习使用lex和yacc来实现一个简单的shell解释器,估计借用lex和yacc力量,我们的shell命令解释器实现起来就非常简单了。(二):英语简单语法分析扩展在这里我们通过对上一小节

2016-01-15 14:03:16 3610 1

原创 GTK+重拾--10 GTK+中的组件(二)

(一):写在前面在上面一个小节中,我们讲解了在GTK+2.0中的一些常用的构件,在这一小节中,我们将继续学习GTK+中常用的稍微复杂的构件,这里我们主要是学习GtkComboBox,GtkEntry,GtkIconView,GtkImage,GtkSeparator,GtkStatusBar。好了,现在我们开始我们的学习之旅。(二):GtkComboBoxGtkComboBox构件的作用是让程序使用

2015-12-31 16:53:11 2878

原创 GTK+重拾--09 GTK+中的组件(一)

(一):写在前面在这篇文章中主要介绍了GTK+程序中的各种构件,这是讲解构件的第一个部分,另外一部分将在下一个小节中讲到。构件是建立一个GUI程序的基础。在GTK+的长期发展过程中,一些特定的构件逐渐成为了大多数编程工具集和几乎所有的操作系统的公用标准了。例如,按钮,选择框或者是一个滑动条。对于GTK+来说,内置了很多常用的专用构件,供我们使用。(二):GtkButtonGtkButton是一个简单

2015-12-29 14:28:11 2174

原创 如何将CM android移植到你的设备(二)

(一):写在前面在上面一个小节当中,我们学习了将CM移植到我们自己的设备的上半部分,这里,我们将下半部分学习一下,并尝试讲CM移植到一个平板上去。(二):承接上文device_[codename].mk文件device_[codename].mk包含关于构建哪一个Android包,去哪里复制指定文件和包或者是在整个编译阶段要设置的指定属性等的指令。该文件可以在编译阶段被用来讲重要文件复制到ramdi

2015-12-21 15:56:08 2633

原创 GTK+重拾--08 GTK+中的对话框

(一):写在前面在这一个小节中,我们主要学习的是GTK+中的对话框。对话框窗口是众多GUI应用程序中不可或缺的部分。对话框是经常在窗口应用中使用的。对话框可以用来输入数据,修改数据,或者是改变应用程序的使用设置信息等等。下面我们就通过分类来讲解如何使用各种类型的对话框。(二):消息对话框消息对话框可以方便在我们的应用程序中,跳出来显示一些有用的信息,其中也可以包含文字或者图像。下面我们来看一个例子:

2015-12-18 14:29:58 2485

原创 如何讲CM Android移植到你的设备?

关于将cm android移植到你的设备上的一些技巧你可能会遇到CM并不支持的手机设备或者是平板设备。原来的时候我们可能会编译那些cm支持的设备源码,并将其烧录到设备中来测试运行,那个过程是相当轻松的,但是如果要移植到CM并不支持的设备上去的话,可能需要费点力气。在这边文章中,我们假设你所在的目录是android的源码根目录。先决条件移植cm到一个新的设备上去可以是非常简单的,也可能是非常困难的,

2015-12-17 16:35:26 4456

原创 民意调查Django实现(四)

我们接着上一小节的末尾开始学习,在上一个小节中,我们主要是了解了Django中的模板,即templates的使用。在这个小节中,我们主要关注于简单的表单处理并且裁剪我们的代码。编写一个简单的表单我们来更新一下我们的detail模板(“polls/detail.html”),添加HTML的<form>元素。<h1>{{ question.question_text }}</h1>{% if error

2015-12-16 16:19:43 2135

原创 GTK+重拾--07 GTK+中的事件

(一):写在前面在这一个小节中,我们主要是学习GTK+2.0中最重要的部分,就是信号和事件。GTK+函数工具库是基于“事件”系统的。所有的GUI应用都是基于“事件”驱动的。如果没有“事件”发生,那么应用程序就无法正常运行。在GTK+中一个事件就是从X窗口服务器传过来的一个消息。当一个“事件”发生的时候,她就会通过发送一个“信号”来表示它已经做除了反应。当然,利用GTK+还可以为“信号”绑定专门的回调

2015-12-15 17:47:03 3716 1

原创 民意调查Django实现(三)

我们接着第二小节的开始继续我们的旅程。我们会继续Web-poll应用,并且将会专注于创建公共接口 - “Views”。哲学思想一个视图是你的Django应用中的一个Web页面,它大体上服务一个特别的函数和一个特别的模板。例如,在一个博客应用中,你可能有下面的视图:博客首页 - 展示了最近的条目条目详细页面 - 为一个单一条目的固定链接页面基于年的档案页面 - 展示给定年份的所有月份的条目基于

2015-12-14 17:00:17 2529 5

原创 GTK+重拾--06 布局管理器学习

(一):写在前面在上面的学习中,我们主要是学习了GTK+2.0的关于菜单栏和工具栏的使用方式。在这里,我们主要学习使用在GTK+2.0中的布局,布局在设计应用程序的图形界面的时候,是非常重要的。GTK+2.0中有几个常用的布局管理器。其中有GtkFixed,GtkVBox,GtkHBox,GtkTable和GtkAlignment。现在我们就一个一个的学习了。(二):GtkFixed布局管理器容器构

2015-12-11 15:19:25 2136

原创 GTK+重拾--05 工具栏的使用

(一):写在前面在我们上一个小节的学习当中,学习了解了如何使用菜单栏来管理我们的窗口,但是相对来说,GTK+2.0在处理菜单栏的时候有些小麻烦,很容易使人迷惑,不过大体了解一下这个意思就行,只要能够会使用菜单栏就行,如果真是闹不明白他们之间的包含关系,就直接使用之前的代码进行添加就行。然后就是后面我们会学习使用Glade图形接口设计程序来构建我们的界面接口,Glade类似于QT的Qt designe

2015-12-10 16:47:35 1588

原创 GTK+重拾--04 菜单栏使用

(一):写在前面在这一小节中,我主要是回顾了GTK+2.0的菜单栏和状态栏的使用。菜单栏(menubar)是GUI程序中最常见的部分之一。我们在日常使用窗口程序的时候,很多我们需要的功能都是在菜单栏和工具栏中获取的。首先我们先来了解一下什么是菜单栏和工具栏。菜单栏就是我们点击窗口的最上面的按钮的时候弹出的弹出框,其中有好多菜单去提供功能。下面我们看一下我的菜单的截图:其中最上面盛放File,Edit

2015-12-09 14:01:45 2222

原创 android(cm11)状态栏源码分析(一)

(一):写在前面最近由于工作需要,需要了解CM11中的有关于StatusBar相关的内容。总的来说,刚开始阅读其源码的时候,是有点困难,不过通过构建相关代码的脑图和流程图,几天下来,我已经对其源码有了一个大体的了解,不过其内部细节还有很多不是很明白,但是这对于我的工作来说就已经足够了。在android系统中,有关于系统状态栏有关的代码位于/framework/base/packages/System

2015-12-08 11:36:41 4473

原创 民意调查Django实现(二)

我们接着第一讲中的代码编写。在第一小节中,我们完成了基本模型的构造和基本环境的搭建。在这里,我们关注于Django的自动生成的admin站点。创建admin用户首先,我们需要创建一个登陆admin站点的用户,运行下面的命令:python manage.py createsuperuser输入你自己的用户名,邮箱和密码:Username: boboEmail address: 897637468@q

2015-11-30 16:29:55 1870

原创 GTK+重拾--03

(一):写在前面在这一个小节当中,主要是通过一个窗口实例来实现对GTK+的整体理解。我们这个实例比较简单,就是实现两个按钮和一个标签,按钮上显示的是加号和减号,标签的初始值为0.每按下一次增加按钮,标签中的数字就会加1,每按下一次减少按钮,标签中的数字就会减1.就是一个这样的功能。这里面设计到的问题有:信号槽机制,布局也就是Layout等。(二):整体思路Created with Raphaël 2

2015-11-26 17:04:21 1532

原创 民意调查Django实现(一)

经过两天的python2.7的学习和Django的基础部分的了解,在Django的官网上,我看到了一个实例程序,该实例程序是通过一个基本民意调查程序的完成来深入理解Django框架。该民意调查有两个部分: - 一个用于用户查看民意调查问卷并且投票网页 - 一个管理端用于你去添加,修改和删除民意调查项在之前的博客中,我已经明确的说明了Django的安装和使用。同时也说明了如何使用python函

2015-11-23 17:18:03 4115 4

原创 OTA更新包内部

系统从bootable/recovery/updater中构建updater二进制程序,并且在OTA更新包里面使用他.更新包本身是一个.zip压缩包文件(ota_update.zip,incremental_ota_update.zip),压缩包内包含可执行二进制程序 META-INF/com.google/android/update-binary .Updater包含几个内置函数和用于可扩展脚本

2015-11-20 16:09:02 1166

原创 基于块的OTA

你可以使能运行Android5.0的新设备启动基于块的OTA升级.OTA是设备运营商远程更新一个设备的部分系统的机制.Android 5.0和后续版本使用块设备OTA升级来确保每一个设备使用精确的相同的分区.块OTA处理整个分区作为一个文件并且计算一个单一的二进制补丁,而不是比较单独的文件和计算二进制补丁,确保生成的分区保存精确的目的位.这允许设备系统镜像通过fastboot或者是OTA实现相同的

2015-11-20 11:38:00 1468

原创 ubuntu下Django的安装和使用(一)

(一):背景在线由于现在工作的需要,我需要使用python来进行一个网站后台的开发,python之前接触过其语法的学习,基本的东西已经掌握,但是当时自学的时候是学得python3.5,而现在要使用python2.7进行实现,所以,先不管了,大多是一样的,有部分是不一样的,慢慢搞吧.(二):编程环境搭建我的网站开发是在ubuntu系统下进行的,我们都知道,ubuntu系统在安装的时候,是自带pytho

2015-11-19 15:02:15 19383 4

原创 OTA打包工具

在build/tools/releasetools文件夹中提供的 ota_from_target_files工具可以构建两种包:全镜像包和增量包.这些工作把Android构建系统提供的目标文件.zip文件作为他们的输入.全更新全更新就是把编译后设备的所有的状态(system,boot和recovery分区)都被包含到包里.只要设备能够接受更新包并且启动recovery系统,不管当前设备的状态是什么样

2015-11-17 10:19:29 1452

原创 android OTA更新

Android OTA更新​ ​ ​ ​  Android设备可以接受和安装系统和应用软件的空中下载更新.设备有一个特殊的带有软件的recovery分区,该分区可以解压下载的更新包并且将他们应用到系统中.​ ​ ​ ​ 这一小节描述了这些包的结构和为了构建他们所提供的工具.主要是为了那些想要在新的Android设备上制作OTA更新系统工作和那些为发行的的设备构建更新包的开发者设计的.OTA更新

2015-11-14 10:40:08 3741

原创 勇者斗恶龙

(一):勇者斗恶龙你的王国有一条n个头的恶龙,你希望顾一些骑士把他杀死(即砍掉所有的头)。村中有m个骑士可以雇佣,一个能力值位x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有的头,且需要支付的金币最少?注意,一个骑士只能砍一个头(且不能被雇佣两次)。【输入格式】 输入包含多组数据。每组数据的第一行为正整数n和m(1 <= n,m <= 20000

2015-11-12 10:45:11 1038

原创 GTK重拾--02

(一):写在前面在第一节中,已经体会到了GTK桌面开发的效果,同时也了解到有很多使用GTK库开发的例子.同时上一节我们使用GTK开发了一个简单的窗口程序,在这一节中,我们就进入到窗口的学习.窗口是承载多个组件的容器.在窗口中我们可以放置菜单,工具等组件.同时,在这一小节的开始,我们先学会使用一个IDE来编写GTK程序,这样,开发起来比较简单方便,因为他有一些提示功能等.(二):CodeBlocks编

2015-11-09 11:45:23 1069

原创 GTK重拾--00

(一):写在前面从现在开始,我准备学习GTK+2.0库进行linux下的界面程序开发.从我们程序员的角度来讲,接触到的第一个程序肯定是Hello World.所以,我们现在就从Hello World学起.在这里仅仅是构建了一个GTK+的空白窗口,主要的目的是先感受一下GTK+的开发,既然他是一个程序库,之前我又有过QTGui方面的开发经验,估计学习起来应该不是很费劲.(二):初识GTK+1:什么是G

2015-11-06 15:50:40 1513

原创 (六):Winelib开发组件2

话接上节!!(二):编译资源文件:wrc为了编译资源,你应该使用Wine资源编译器,简写为wrc,该编译器会生成一个二进制.res文件。当编译spec文件的时候,该资源文件会被winebuild使用。winemaker生成的makefiles文件会帮你照料好。但是,如果你要编写自己的Makefile文件的话,你应该将下面的语句加上:WRC=$(WINE_DIR)/tools/wrc/wrcWINE

2015-11-06 14:09:21 975

原创 (五):Winelib开发组件(1)

这一小结包含的内容有:Winemaker编译资源文件:wrcSpec文件链接(一):Winemaker1:对Visual C++项目的支持Winemaker支持Visual C++项目文件。支持的文件类型位.dsp,.dsw,.vcproj和.sln。他检测要被使用的定义,这些自定义包括路径,要被链接的库和构建一个特定目标的源码文件。如果可以的话,对一个项目文件推荐使用Winemaker

2015-11-03 15:25:30 1398

原创 (四):移植问题

下面讲一下我们的Windows项目的可移植性问题。总共从三个方面来讲这个问题。Unicode编码C库编译问题(一):Unicode编码wchar_t类型在Unix(4字节)和Windows(2个字节)中有不同的标准大小。你需要一个较新版本的gcc(2.9.7或者是更新)来支持-fshort-wchar选项来设置wchar_t的大小。如果你正在使用Unicode编码,并且你想要能够使用标准的库

2015-11-02 17:41:44 975 1

原创 (三):Winelib用户手册2

3.3 一步一步的指导下面我们详细地来追踪一下上面的步骤。1): 获取源码首先,你应该试着获取包括他们构建的可执行文件/库在内的源码。如果你没有可用的Visual C++项目文件,Winemaker能够帮助他猜测你的项目要构建成什么。他能够理解Visual C++项目。通常情况下,可执行文件/库文件位于源码中的Release或者是Debug子目录中。所以,你能够讲这些源码文件和这些目录转换到Lin

2015-11-02 16:33:22 1019

原创 iptables的man手册以及使用

(一):iptables的命令手册名称 iptables/ip6tables ---- Ipv4/Ipv6包过滤和NAT的管理工具简介 iptables [-t table] {-A|-C|-D} chain rule-specification ip6tables [-t table] {-A|-C|-D} chain rule-specification iptables

2015-10-30 16:26:11 1701

原创 frame buffer编程--重新架构代码,实现动态效果

(一):写在前面这一次没有进行功能上的改进,主要是为了后来修改方便,而将画点,画线,画长方形,画圆等的提取出来,对Makefile进行了修改,方便于后期的维护.同时,为了后面实现我的思路,我进行了一个测试,就是实现一个运动的圆的效果.圆是可以运动了,但是效果不是特别好.后面再了解一下图形化界面是怎么实现的.我再试一下别的思路.(二):功能介绍1:Makefile文件的修改objects = fbto

2015-10-29 16:56:00 1417 3

原创 (二):winelib用户手册1

(一):Winelib介绍1:什么是winelibWinelib是一个开发工具套件,他允许你能够在Unix中编译你的Windows应用程序。大多数Winelib代码是由一些win32 API实现组成的。幸运的是,这一部分是在Wine中百分百分享的。其他的包括窗口兼容头文件和一些工具,如资源编译器(甚至这些是在wine编译的时候使用)。幸亏有上面介绍的这些库和工具,Winelib才能够支持大多数的C和

2015-10-28 17:17:20 2589

原创 frame buffer编程--画点功能和新增字符串代替RGBT

(一):写在前面这一次进行了一个比较大的迭代,在这里我先把相对于上一个版本的改进做一个解释:1:进一步完善画点,增加了使用字符串代替RGBT值2:实现字符串解析出RGBT值3:增加了画圆的算法4:进一步增强了代码注释这四个点是这一节实现的主要内容.这样的修改为下面进一步的实现提供了方便.(二):功能介绍首先我做的是把颜色相关的代码单独分离开来,新增加一个color.h文件,专用于颜色相关的

2015-10-28 13:05:25 1218

原创 framebuffer实现命令行下绘图

(一):写在前面在这一小节当中,我主要是实现了对frame buffer的操作编程,实现了将内存中的地址映射到逻辑地址空间,然后对其内存进行操作,包括在屏幕上画点,画线,画四边形,填充四边形等.然后,再将数据映射到内存中进行显示.这里的操作比较简单,只要实现一个画点的操作,就能以画点为基础,实现各种操作.(二):画点的实现首先,我们在上一个小节中已经将内存中的地址映射到相应的逻辑地址内存空间.就是使

2015-10-26 17:30:10 3030

framebuffer绘图

该资源实现了对framebuffer进行编程在命令行界面上进行编程的实例.

2015-10-26

selinux by example

这本书通过实例讲解了selinux中的一些特性,讲解比较透彻易懂

2015-08-17

安卓市场框架搭建--3

这是进一步完成框架搭建所完成的代码,添加了首页,分类,主体,推荐等activity

2015-07-23

seandroid论文(注释版)

该文档是我的学习SEAndroid的时候加上注释之后的论文。

2015-07-17

androidMarket01

这个是和我的博客中《一步一步完成安卓市场》同步的,这个是第一个版本,小型框架的搭建。

2015-07-17

android教程

该书籍能够使读者更快的入门android开发!

2013-06-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除