自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 Android音视频方向进阶路线及资源合集

音视频从采集到播放都经历了哪些流程呢::通过上面的图,我们简单的把音视频方向分为主要的两块:媒体部分(蓝色+绿色) 传输部分(红色)1.媒体部分我们这篇文章不再从音视频专业知识开始,而Android系统API的角度,逐层深入.1.1 原始版本我们最开始接触的摄像拍照是通过Intent调用系统摄像头:Intent intent=new Intent();...

2020-03-19 11:18:22 750

原创 startService与bindService

Android执行Service有两种方法,一种是startService,一种是bindService。下面将两者做个说明,并介绍怎么使用bindService绑定服务。1、生命周期      执行startService时,Service会经历onCreate->onStartCommand。当执行stopService时,直接调用onDestroy方法。调用者如果没有

2015-05-14 16:16:03 561

转载 Android中Context详解

大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中   时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是   因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个

2015-05-14 15:10:34 404

转载 Android之WebView教程实例汇总

一、WebView教程1.Android---UI篇---WebView(网络视图)http://www.apkbus.com/android-14259-1-1.html2.webview学习记录http://www.apkbus.com/android-44567-1-1.html3.Android中使用WebView, WebChromeClient和WebViewCli

2015-05-13 11:52:51 524

转载 Native App、Web App、Hybrid App的优缺点

Native AppNative Code编程,代码编译之后以2进制或者字节码的形式运行在OS上,直接调用OS的Device API;优点:能够访问手机的所有功能(GPS,相机等)更好的运行速度、性能和总体的用户体验支持离线工作(因为是在设备上运行而非Web)支持丰富的图形和动画在应用商店轻易地找到应用并且在主屏幕上能轻易找到应用图标下载应用需要付费(应用商

2015-05-12 15:16:30 1074

转载 AppWidgetProvider使用介绍

一 介绍AppWidgetProvider是android中提供的用于实现桌面小工具的类,其本质是一个广播,即BroadcastReceiver。下面是类的继承关系。所以,在实际的使用中,把AppWidgetProvider当成一个BroadcastReceiver就可以了,这样许多功能就很好理解了。二 开发一个桌面小工具的步骤1 定义小工具界面:在re

2015-05-11 19:53:28 693

转载 ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自己的home目录

1、先要安装Samba$ sudo apt-get install samba openssh-server2、编译Samba配置文件$ sudo vi /etc/samba/smb.conf找到[homes]项,此项默认是注释掉的,取消其注释,然后修改其具体内容,修改成如下:[homes]   comment = Home Directories   browseab

2015-03-10 13:47:17 557

转载 android开发 NDK相关问题

NDK编译和使用静态库、动态库太复杂,见文章:http://android开发 NDK编译和使用静态库、动态库jni头文件生成:1. 声明Java Native接口。(定义Java Native接口可以在Android项目的主类里声明,也可以通过使用独立的类来声明。)static { System.loadLibrary("libxxx"); }

2015-02-05 16:24:19 337

转载 android开发 NDK编译和使用静态库、动态库

情况一:编译静态库情况二:编译动态库情况三:编译动态库+静态库情况四:已有第三方静态库(动态库),编译静态库(动态库)默认所有代码和文件在$project/jni下,否则特殊说明。情况一:编译静态库文件Android.mk:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)

2015-02-05 16:15:49 997

原创 用NDK编译开源项目

用NDK编译开源库的目的是得到.so文件,让JNI调用。编译的方法主要有两种:1、书写Android.mk文件,使用ndk-build来编译。这种方法,关键在于书写Android.mk,对于工程复杂,目录复杂的源码,写Android.mk太费力,所以这种方法,很少用。2、直接用NDK的GCC环境,利用开源库自己的configure / Makefile去编译。这个和一般的交叉编译没

2015-02-05 15:29:09 1873

转载 Eclipse编译JNI的三种方法

一、Eclipse关联cygwin1. 工程->右击选择Properties->选择Builders,在Builders中选择New创建一个Program     2. 参数配置    二、Eclipse关联ndk-build(自建Builder方法) 1. Project->Properties->Builders->New,新建一个Build

2015-01-21 14:58:42 487

转载 Cygwin编译JNI的环境配置

一:什么是NDK? NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK 集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI 等差异,开发人员只需要简单修改mk 文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK 可以自动地将so和Java应用一起打

2015-01-21 11:41:25 740

转载 Systemd服务简介

systemd 是 Linux 下一个与 SysV 和 LSB 初始化脚本兼容的系统和服务管理器。systemd 使用 socket 和 D-Bus 来开启服务,提供基于守护进程的按需启动策略,保留了 Linux cgroups 的进程追踪功能,支持快照和系统状态恢复,维护挂载和自挂载点,实现了各服务间基于从属关系的一个更为精细的逻辑控制,拥有前卫的并行性能。systemd 无需经过任何修改便可以

2015-01-13 16:22:27 666

转载 Linux的启动流程

半年前,我写了《计算机是如何启动的?》,探讨BIOS和主引导记录的作用。那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程。这个部分比较有意思。因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多;但是,一旦进入操作系统,程序员几乎可以定制所有方面。所以,这个部分与程序员的关

2015-01-13 16:13:18 391

转载 浅析Linux初始化(init)系统,第 3 部分: Systemd

近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 systemd。本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系统和开发应用。本文是系列的第 3 部分,主要讲述 sys

2015-01-13 11:16:46 540

转载 浅析Linux初始化(init)系统,第 2 部分: UpStart

Upstart 简介假如您使用的 Linux 发行版是 Ubuntu,很可能会发现在您的计算机上找不到/etc/inittab 文件了,这是因为 Ubuntu 使用了一种被称为 upstart 的新型 init 系统。开发 Upstart 的缘由大约在 2006 年或者更早的时候, Ubuntu 开发人员试图将 Linux 安装在笔记本电脑上。在这期间技术人员发现经典的 s

2015-01-13 11:07:24 481

转载 浅析Linux初始化(init)系统,第 1 部分: sysvinit

从 sysvinit 到 systemd近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经淡出历史舞台,新的 init 系统 UpStart 和 systemd 各有特点,而越来越多的 Linux 发行版采纳了 systemd。本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地

2015-01-13 11:03:12 410

转载 Linux 大文件分割split与合并cat使用方法

在传输等方面大文件往往都是被限制的,所以我们需要分割大文件,以下学习总结备查

2014-08-09 11:19:41 975

原创 为Android系统添加服务

为Android系统添加服务一、Android系统中具有两层服务:1. C++层的核心服务(Core Service)2. Java层的系统服务(SDK-based Service)核心服务(Core Service)是Android框架里最接近内核的部分,通常运行在独立的进程(Process)里,使用C++实现,是让上层Java应用程序使用驱动和硬件设备的重要管道。在开机过程中,就可以启动核心服

2014-07-30 16:11:50 578

转载 Binder机制5--- Binder实现进程管理服务示例

6. 用eclipse实现PMServicePMservice是一个通过Service服务,来实现任务管理的程序。分为客户端PMClient和服务端PMService。PMService提供一些操作方法:服务开始的提示方法:getVal();任务管理器的查询方法:getProcessID() 获取进程号,和getProcessName()获取进程名;以及终止进程的方法:kill

2014-07-28 16:10:06 424

转载 Binder机制4---Framework层

[java] view plaincopy5. Binder机制的Java接口  通常,应用程序框架中基于Java语言的Binder接口是通过JNI来调用基于C/C++语言的Binder运行库来为Java应用程序提供进程间通信服务的。在应用程序中,Server被实现为Service的形式,并通过IServiceManager.addService接口来把这个Service添

2014-07-28 16:05:58 467

转载 Binder机制3---Native层

Native层流程大纲介绍完Binder驱动的构架后,下面我们进入到Binder Native层的流程分析。Binder的整体流程可分为如下几个步骤:Service Manager成为守护进程--- Service Manager告知Binder驱动程序它是Binder机制的上下文管理者。Server和Client获得Service Manager的远程接口--- defaultSer

2014-07-28 16:02:15 469

转载 Binder机制2---Binder的数据结构以及Binder驱动

目录(?)[-]大纲Binder在传输数据中的表述flat_binder_objectBinder对象类型Binder实体在驱动中的表述binder_nodeBinder引用在驱动中的表述binder_refBinder 进程线程结构binder_proc和binder_threadBinder收发数据包结构binder_transaction_dataBinder写操作命令字 BC_

2014-07-28 16:02:00 590

转载 Binder机制1---Binder原理介绍

目录(?)[-]Binder通信机制介绍Android与Linux通信机制的比较Binder在Service服务中的作用Binder通信机制流程整体框架Server向SM注册服务一个问题-如何获得SM的远程接口Client从SM获得Service的远程接口建立CS通路后匿名Binder1.Binder通信机制介绍这篇文章会先对比Binder机制与Linux的通信机制的差

2014-07-28 15:59:14 481

翻译 深入理解Android启动过程

深入理解Android启动过程 当按下Android设备上的电源键时发生了什么?Android的启动过程是怎样的?什么是linux内核?桌面系统的linux内核和Android系统的linux内核之间有什么不同?什么是bootloader?什么是Zygote?什么是x86和ARM linux?什么是init.rc?什么是系统服务? 当我们在思考And

2014-07-27 15:45:52 710

转载 C++中的 extern "C"

比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL 输出(Export) 的函数,你需要用extern "C" 来强制编译器不要修改你的函数名。通常,在C 语言的头文件中经常可以看到类似下面这种形式的代码:C代码  #ifdef __cplusplus  extern "C" {  #endif    /**** so

2014-07-23 10:00:40 399

原创 修改ubuntu的命令提示符

主要信息:\u   当前登录用户名\h   当前计算机名称(譬如ubuntu)\H   当前计算机的域名全程,譬如(ubuntu.ubuntu.com)\w   当前目录\W 当前目录的basename\$ 一般用户为$,root用户为>(可以看到Ubuntu缺省的提示符设置)时间显示\t   当前时间(24小时制,HH:MM:SS 分别代表 小时:分钟:秒

2014-07-18 18:08:53 1074

转载 ubuntu之dos2unix和unix2dos

Ubuntu下默认没有安装dos2unix工具,而且也没有一个叫这个名字的工具(我在solaris里用过dos2unix,不知道为啥Ubuntu没有)。但是有一个替代工具——tofrodos , 下面就说一下它的安装和使用。当然还是apt安装啦。(1)安装tofrodossudo apt-get install tofrodos 实际上它安装了两个工具:todos(相当于uni

2014-07-11 10:13:42 509

转载 git管理空目录

git 和 svn 不同,仅仅跟踪文件的变动,不跟踪目录。Perforce 也是如此。所以,一个空目录,如果里面没有文件,即便 git add 这个目录,另外在别处 check out 的时候,是没有这个空目录的。只跟踪文件变化,不跟踪目录,这么设计是有原因的。但这会带来一些小麻烦。有时候,确实需要在代码仓库中保留某个空目录。比如测试时需要用到的空目录。变通的解决办法是在空目录下存

2014-07-10 18:31:27 586

转载 ubuntu12.04中的部分快捷键

Shift+Ctrl+T:新建标签页Shift+Ctrl+W:关闭标签页Ctrl+PageUp:前一标签页Ctrl+PageDown:后一标签页Shift+Ctrl+PageUp:标签页左移Shift+Ctrl+PageDown:标签页右移Alt+1:切换到标签页1Alt+2:切换到标签页2Alt+3:切换到标签页3Shift+C

2014-07-09 16:53:08 321

转载 将VirtualBox的状态栏隐藏

隐藏状态栏命令首先在shell中输入:VBoxManage setextradata global GUI/Customizations noStatusBar然后启动虚拟机,这个时候状态栏应该没有了。加入想恢复状态栏的话输入如下命令:VBoxManage setextradata global GUI/Customizations StatusBa

2014-07-09 16:47:23 1023

空空如也

空空如也

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

TA关注的人

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