自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android framework层获取Binder调用者的pid,uid

原文出处:http://www.ccbu.cc/framework/framework-get-pid-uid.html1.1 Java层int pid = Binder.getCallingPid();int uid = Binder.getCallingUid();String callingApp = mContext.getPackageManager().getNameForUid(uid);还可通过ActivityManager来跟进进程PID来获取进程名public String

2020-08-16 22:21:28 3550

原创 Android 修改系统默认输入法

原文出处:http://www.ccbu.cc/framework/modify-default-inputmethod.html1. 修改系统默认输入法Android系统的默认输入法在很多情况下是无法满足我们的需求的,因此就需要OEM自己集成输入法,基础输入法到系统,并需要修改系统默认输入法的配置。在frameworks/base/packages/SettingsProvider/res/values/defaults.xml添加<string name="def_input_meth

2020-08-16 22:13:39 4091 2

原创 Fragment生命周期及基本使用

原文出处:http://www.ccbu.cc/index.php/android/fragment-lifecycle.html什么是FragmentFragment实在是Android 3.0(API 11)中引入的,译作“碎片”。Fragment作为应用用户接口或行为的一部分而放置在Activity中。Fragment不能独立存在,只能依赖与Activity存在。Fragment拥有自己的生命周期,其生命周期受宿主Activity的控制,状态会随着Activity的状态的改变而发生改变。因And

2020-06-13 12:25:33 639 1

原创 ContentProvider使用简介

原文出处:http://www.ccbu.cc/index.php/android/android-contentprovider.htmlContentProvider中文名“内容提供者”,是Android系统不同应用程序之间进行数据交换的标准API,ContentProvide以Uri的形式对外提供数据,允许其他应用访问和修改数据;其他应用使用ContentResolve根据Uri进行访问操作指定的数据。Android内置的许多数据也都是使用ContentProvider形式,供开发者调用的;如视频,

2020-05-30 10:42:50 394

原创 BroadcastReceiver使用介绍

BroadcastReceiver 介绍原文出处:http://www.ccbu.cc/index.php/android/broadcast_receiver_intro.htmlBroadcastReceiver是Android开发4大组件之一。正如其名BroadcastReceiver作为广播接收者,用来监听系统全局的广播消息。广播(Broadcast)在Android系统中是在各组件之间传播数据的一种机制,这些组件可以位于不同的进程中。作为一个全局的广播监听组件,BroadcastReceive

2020-05-30 10:38:12 451

原创 Android JNI开发详解(7)-线程操作,异常处理

线程操作JNIEnv指针仅在创建它的线程有效。C/C++创建的线程默认是没有附加到JVM的,如果我们需要在本地线程线程访问JVM,那么必须先调用AttachCurrentThread将当前线程与JVM进行关联,然后才能获得JNIEnv对象。线程退出或不再需要使用JNIEnv时,我们必须通过调用DetachCurrentThread来解除连接,否则可能会导致线程不能正常退出或程序奔溃等问题。函数说明AttachCurrentThread将当前线程附件到JVMDetachCurr

2020-05-24 15:36:14 189

原创 Android JNI开发工具篇(1)-开发环境搭建

原文出处:http://www.ccbu.cc/index.php/android/android-jni-dev-env.html工欲善其事,必先利其器。1. 开发环境准备搭建开发环境是我们进行开发前首先要完成的任务,进行Android jni开发,依赖的基本开发环境包括:Android sdkandroid ndkcmakeandroid studioAndroid studio的sdk manager已经包括了上面所说的sdk,ndk,cmake等工具的安装,所以一般只用下载and

2020-05-24 11:54:33 499

原创 Android JNI开发详解(6)-对象操作

原文出处:http://www.ccbu.cc/index.php/android/android-jni-object-operate.html1. 对象操作基本步骤Jni是沟通Java世界和Native世界的纽带,Java层调用本地方法只用调用Java中定义的本地(native)方法就可用了,那么,本地的C/C++代码如何调用Java层的代码呢?这就是本章节对象操作要解决阐述的内容。一般的,C/C++层要调用Java层代码,需要进行以下步骤。获取Java层对应的jclass,通过jclass来

2020-05-24 11:49:01 551

原创 Android JNI开发详解(5)-引用篇

原文出处:http://www.ccbu.cc/index.php/android/android-jni-ref.html在JNI规范中定义了三种引用:局部引用(Local Reference)、全局引用(Global Reference)、弱全局引用(Weak Global Reference)。1. 局部引用1.1 局部引用通过NewLocalRef和各种JNI接口创建(FindClass、NewObject、GetObjectClass和NewCharArray等)。会阻止GC回收所引用的对

2020-05-24 11:47:23 339

原创 Android JNI开发详解(4)-数据操作

原文出处:http://www.ccbu.cc/index.php/android/android-jni-data-operation.html在前面关于JNI介绍的文章中我们知道,Java层和Navice层是两个世界,而JNI正是为了这个两个世界能够友好的相互沟通而设计的。既然是不同的两个世界,所有他们各自的数据类型定义也是不一样的,Java层和Native层都有自己的数据类型,在JNI中,这些数据类型又可以分为基本数据类型和引用数据类型,其中,基本数据类型是可以直接相互转换的,而引用数据类型则需要进

2020-05-24 11:44:41 375

原创 Android JNI开发详解(3)-JavaVM和JNIEnv

原文出处:http://www.ccbu.cc/index.php/android/android-jni-jnivm-jnienv.htmlJavaVM 和 JNIEnvJNI 定义了两个关键数据结构,即JavaVM和JNIEnv。两者本质上都是指向函数表的二级指针。在 C++ 版本中,它们是一些类,这些类具有指向函数表的指针,并具有每个通过该函数表间接调用的 JNI 函数的成员函数。1. JavaVMJavaVM是虚拟机在JNI中的表示,一个JVM中只有一个JavaVM对象,这个对象是线程共享的

2020-05-24 11:41:43 576

原创 Android JNI开发详解(2)-函数注册

原文出处:http://www.ccbu.cc/index.php/android/android-jni-function-register.html1. JNI开发流程创建Native C++工程,这部分可用参考[Android JNI开发详解(2)-开发环境搭建](Android JNI开发工具篇(1)-开发环境搭建.md)创建Java层本地接口调用类,并定义好相应的本地函数。将Java源代码编译成class字节码文件(Android studio会自动生成)。创建对应的本地

2020-05-24 11:37:56 262

原创 Android JNI开发详解(1)-JNI开发介绍

原文出处:http://www.ccbu.cc/index.php/android/android-jni-intro.html什么是JNIJNI是Java Native Interface的缩写,中文译为“Java本地接口”,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)进行相互调用,从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。所以,JNI技术是JAVA与本地世界的通信桥梁,通过这种技术可以做到以下两点:

2020-05-24 11:33:57 394

原创 PathFromUri(Android 4.4 kitkat以上及以下根据uri获取路径的方法)

原文出处:http://www.ccbu.cc/android/android-pathfromuriAndroid4.4开始,Uri的格式定义发生了变化,与之前的固定形势相比较,出现了几种不同的格式定义,分别对应不同的Provider(DocumentProvider,DownloadsProvider,MediaProvider),对于Uri,可以通过DocumentsContract.is...

2020-01-03 20:57:36 408

原创 Android 硬件加速(Hardware acceleration)

原文出处:http://www.ccbu.cc/android/android-hardware-acceleration硬件加速Android 3.0 (API level 11), 开始支持所有的View 的canvas都会使用GPU,但是硬件的加速会占有一定的RAM。在API >= 14上,默认是开启的,如果你的应用只是标准的View和Drawable,全局都打开硬件加速,是不...

2020-01-03 20:54:37 223

原创 Android.os.SystemClock 介绍

Class OverviewCore timekeeping facilities.Three different clocks are available, and they should not be confused:System.currentTimeMillis() is the standard “wall” clock (time and date) expressing m...

2019-12-23 22:38:39 309

原创 WindowManager.LayoutParams

WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;它继承于 ViewGroup.LayoutParams; 它用于向WindowManager描述Window的管理策略。定义public static class WindowManager.LayoutParams extends ViewGroup.LayoutParams impleme...

2019-12-23 22:37:13 118

原创 ProgressBar简介

ProgressBar是Android系统提供的进度条view控件。ProgressBar有两个进度,一个是Android:progress,另一个是android:secondaryProgress。后者主要是为缓存需要所涉及的,比如在看网络视频时候都会有一个缓存的进度条以及还要一个播放的进度,在这里缓存的进度就可以是android:secondaryProgress,而播放进度就是and...

2019-12-21 21:01:08 344 1

原创 ActionBar简介

ActionBar是Android 3.0以后Anrdoid系统增加的导航栏功能控件。它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。使用ActionBar的好处是,它可以给提供一种全局统一的UI界面,使得用户在使用任何一款软件时都懂得该如何操作,并且ActionBar还可以自动适应各种不同大小的屏幕。由于ActionBar是在3.0以后的版本中加入的,如果想在2.x的版本...

2019-12-21 20:59:12 379

原创 Android Drawable之GradientDrawable

GradientDrawable可以在res/drawable目录下以xml文件用标签来定义。看看官方文档给出的xml定义说明吧。<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectang

2016-11-14 22:44:18 1109

原创 Android Drawable介绍

Android Drawable介绍Android系统中将可绘制对象被抽象为Drawable,不同的绘制资源对应着不同的Drawable类型。Android FrameWork提供了常用的Drawable,Android控件的绘制资源基本都是通过Drawable形式实现的。一般情况下,开发者是不会直接接触Drawable的具体实现的,Drawable资源一般都放在res/drawabl

2016-10-21 17:01:07 888

原创 Android自定义View实现简介

Android系统原生的为我们提供很多的功能强大的基础view控件,但即使如此,很多时候,他们还是不能够满足我们的需求,那么我们就需要通过自定义View来实现自己的view。在Android系统种已经为我们提供了一套很好的机制来实现自定义view,下面我们就自定义view的实现过程做一个简单的介绍。1.创建自己的view类通过继承Android的view类或view的子类来创建我们自...

2016-09-25 19:38:51 613

原创 Android之AsyncTask

AsyncTask是android提供的轻量级的异步类。在Android系统种,UI的绘制必须在主线程种进行进行。对于耗时的后台操作可以通过AsyncTask执行。应用中可以通过直接继承AsyncTask,在类中实现异步操作,并通过相应的接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程。Android系统提供的AsyncTask,并对其进行了封装,在使

2016-09-23 21:25:27 326

原创 Android进程间通信之AIDL

在Android系统中,进程之间不能共享内存,为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。Android系统中提供了一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。而这种可以提供跨进程访问的服务称为AIDL(Android

2016-09-12 22:31:12 373

原创 Android Studio进行Jni应用开发

Android studio是谷歌推出的新一代Android应用开发工具,随着Android studio的版本的稳定性的逐步提高,越来越多的开发者开始投入到Android studio的怀抱;毋庸置疑,Android studio确实较eclipse高效了不少。Jni开发无论是在eclipse中还是在Android studio中都支持的很不好,因此这部分的环境搭建,包括后期的调试(基本都是靠看

2016-08-15 20:35:44 1121

原创 Android ListView几种Adapter用法简介

ArrayAdapter<T> 适合非常简单的数据显示,很方便,很简单。SimpleAdapter 可以自定义Item布局,用于显示交简单的布局及控件,但布局内的控件如按钮等无法获取到焦点,当然也就无法获取到他们的点击事件。SimpleCursorAdapter 与SimpleAdapter相似,只是他的数据源是Cursor类型而已。BaseAdpter子类 最常用的ListView数据适配器,通过继承BaseAdpter可以较灵活的实现数据的绑定,同时通过使用View

2016-07-23 23:23:35 8282

原创 简单的单例实现

/////test.h#include "stdio.h"class A{public:~A();static A m_a;static A* getAinstance();void Seta(int aa);private:A();int a;};/////test.cpp#include "test.h"

2014-03-17 09:36:44 582

转载 static_cast和reinterpret_cast

static_cast和reinterpret_cast揭秘 收藏   本文讨论static_castreinterpret_cast  reinterpret_cast可以转换任意一个32bit整数,包括所有的指针和整数。可以把任何整数转成指针,也可以把任何指针转成整数,以及把指针转化为任意类型的指针,威力最为强大!但不能将非32bit的实例转成指针。总之,只要是32bit的

2014-03-03 10:43:46 509

转载 总结Android HAL层的使用方法

1、使用HAL的方法下面以Sensor传感器为例介绍使用HAL的方法,具体流程如下所示。 step1. Native code通过 hw_get_module 调用 HAL stub。[cpp] view plaincopyhw_get_module( LED_HARDWARE_MODULE_ID, (const hw_mod

2014-02-24 16:41:19 869

转载 浅析Android binder机制

linux下进程间通信 :管道,共享内存,信号量,Socket等,java的进程间通信有RPC,RMI,CORBA,Socket等。        Binder作为Android系统进程间通信方式不同于上面传统的IPC,它有着自己的优势。Binder是基于CS(client-service)软件架构,Binder通信是同步,非异步的。为什么选择 Binder       

2014-02-24 16:40:04 559

转载 Android设备驱动之——V4L2

Video for Linux Two                      V4L2的是V4L的第二个版本。原来的V4L被引入到Linux内核2.1.x的开发周期后期。Video4Linux2修正了一些设计缺陷,并开始出现在2.5.X内核。Video4Linux2驱动程序包括Video4Linux1应用的兼容模式,但实际上,支持是不完整的,并建议V4L2的设备使用V4L2的模式。现在

2014-02-24 16:38:40 618

转载 Linux设备驱动之——PCI 总线

PCI总线概述                           随着通用处理器和嵌入式技术的迅猛发展,越来越多的电子设备需要由处理器控制。目前大多数CPU和外部设备都会提供PCI总线的接口,PCI总线已成为计算机系统中一种应用广泛、通用的总线标准[1]。Linux因其开放源代码以及稳定的性能,越来越受到广大用户青睐。同时,基于Linux内核的嵌入式操作系统应用势头强劲,开发基于Li

2014-02-24 16:36:19 571

转载 Linux设备驱动之——I2C总线

2  I2C子系统2.1 LinuxI2C子系统架构在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统。2.2 三大组成部分1、I2C核心(i2c-core)I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(algorithm)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。

2014-02-24 16:33:02 800

转载 Linux设备驱动之——serio总线

什么是总线           总线是处理器与一个或者多个设备之间的通道。在设备模型中所有的设备都是通过总线相连的。甚至那些内部的虚拟"平台"总线。总线可以互相插入,比如一个 USB 控制器通常是一个 PCI 设备。           linux系统中包含的总线有 i2c、ide、pci、pci express、platform、 pnp、 scsi、 serio、 usb等

2014-02-24 16:28:54 861

转载 Android 开发之 ---- bootloader (LK)

LK是什么           LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码  ,little kernel 是小内核小操作系统。           LK 代码 在 bootable/bootloadler/lk 目录下           LK 代码结构           +ap

2014-02-24 16:24:58 753

转载 Android系统驱动概述

说到 android 驱动是离不开 Linux 驱动的。Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 已经包含了一些 Android 代码)。但 Android 并没有完全照搬 Linux 系统内核,除了对Linux 进行部分修正,还增加了不少内容。android 驱动 主要分两种类型:Android 专用驱动 和 Android 使用的设备驱动(linux)。

2014-02-24 16:23:01 3612

转载 Android通过JNI调用驱动程序(完全解析实例)

--作者:赖玉平(Peter Lai)aulyp@163.com        要达到的目的:android系统中,用JAVA写界面程序,调用jni中间库提供的接口,去操作某个驱动节点,实现read,writer ioctl等操作!这对底层驱动开发人员是很重要的一个调试通道,也是android 系统下提供一些特殊功能接口的方法!本文前提:我们假设已经写了一个驱动程序,它是控制LED

2014-02-24 15:55:33 1112

转载 android驱动例子(LED灯控制)

本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导要达到的效果:通过android的应用,调用驱动程序,在开发板上控制4个LED的亮灭。一、硬件原理如上图,通过4个IO口控制这LED,低电平LED亮,这4个IO口分别是GPM1, GPM

2014-02-24 15:54:09 812

转载 基于linux-2.6.35的class_create(),device_create解析

作者:苗德行,华清远见嵌入式学院讲师。从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。提醒一点,udev是应用层的,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。大致用

2014-02-24 15:48:09 598

转载 批量删除目录下的文件夹

因为.net项目里的debug和release文件夹不需要提交到svn,项目多了,不方便挨个删,写个批处理,以后删除.svn目录也用得着。批量删除debug和release@echo offfor /r %%d in (.) do if exist "%%d\debug" rd /s /q "%%d\debug"for /r %%d in (.) do if exist "

2014-01-22 16:21:22 640

C++课设字符串处理

字符串处理是一个简单的模仿c++系统字符串处理函数的简单课设程序。。。

2009-11-21

C++课设多项式相加

多项式相加是一个简单的多项式相加的课设程序,十分简单,适合初学者。。。。

2009-11-21

空空如也

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

TA关注的人

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