自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hipeboy的博客

编程历程

  • 博客(97)
  • 资源 (21)
  • 收藏
  • 关注

原创 Activity的launchMode

1、standard: (备注:standard是系统默认的启动模式。)标准启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。如果启动此Activity的Intent中没有设置FLAG_ACTIVITY_NEW_TASK标志, 则这个Activity与启动他的Activity在同一个Task中,如果设置了Activity请参考上面FLAG_ACTIVITY_NEW_TASK的详细说明,"launchMode"设置为"standard"的Activity可以被实例化多次, 可以

2021-05-04 21:29:44 233

原创 常用的adb命令: Android debug bridge

显示系统中全部Android平台:android list targets显示系统中全部AVD(模拟器)android list avd创建AVD(模拟器):android create avd --name 名称 --target 平台编号启动模拟器:emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)删除AVD(模拟器):android delete avd --name 名称创建SDCard:mksdcard 1024M ~/名称.

2021-05-04 21:19:17 300

原创 Handler post中run()方法与handleMessage()方法的调用原理

在使用Handler时可能遇到一些疑问,handler.post(Runnable r)中的run()方法与handleMessage()的调用Handler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } });

2021-03-12 11:36:19 848

原创 Handler与Looper引起的故事

先看看一段代码:new Thread(new Runnable() { public void run() { Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { Toast.ma

2021-03-10 19:40:35 104

原创 Android 使用procmem工具查看详细内存使用情况

1.procmem 工具代码路径system/extras/procmem2.1编译生成路径out/target/product/xxx/system/xbin2.2procmem 工具下载procmen工具下载3.使用方法adb rootadb remoiuntadb push procmem system/xbin使用adb shellxxx:/ # procmem 14975procmem 介绍procmem:针对每一个进程具体分析就要使用procmem工具了。proc

2021-03-08 11:29:14 713

原创 android adb常用查看内存信息的命令

meminfo: basic memory status-adb shell cat proc/meminfo – 内存系统信息-adb shell cat proc/pid/maps – 指定进程内存地址映射-adb shell cat proc/pid/smaps – 指定进程内存详细使用信息?procrank info: all process memory status-adb shell procrank – VSS. RSS. PSS. USS 信息-adb shell pr

2021-03-07 13:16:04 2131

原创 android camera2获取平台人脸识别坐标步骤详解

人脸识别技术已经很广泛了,那么我们如何在我们的应用中集成人脸识别呢?Google平台自带有人脸识别功能,下面我们看看如何实现://人脸识别当然得打开摄像头 cManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); //open camera cManager.openCamera(cId, getCDeviceOpenCallback(), getCHandler()); /** * 初始化并获取相机开

2021-02-23 14:01:11 1350 1

原创 Android 面试与开发中常遇到的算法集

1,冒泡排序;2,选择排序;3,快速排序;4,归并排序;5,插入排序;冒泡排序 比较两个元素、交换它们的位置 算法原理:冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。public void bubbleSort() { int

2021-02-23 11:36:47 256

原创 kotlin中 run、apply、let、also、with的用法和区别

run 、 apply 、 let 、 also 和 with 五个函数均位于 kotlin 包下的 Standard 文件中,其含义和用法比较相似,现分别介绍如下。run用法1函数定义:public inline fun run(block: () -> R): R = block()功能:调用run函数块。返回值为函数块最后一行,或者指定return表达式。示例:val a = run {println("run")return@run 3}println(a)运行结果:

2021-02-03 23:26:41 2982

原创 Android Kotlin中调用Looper的quit方法和quitSafely方法

在写代码的过程中,可能会遇到如下情况: private fun stopBackgroundThread() { backgroundThread?.quitSafely() try { backgroundThread?.join() backgroundThread = null backgroundHandler = null } catch (e: InterruptedExce

2021-02-03 23:18:13 491 1

原创 android JNI动态注册的相关方案

在JNI开发的时候可能会遇到关于动态注册的方式,java上层的调用和静态方式是相同的,关键是native层的调用有所不同,主要关键在于三个地方:1, 定义调用的JNINativeMethod2, 定义调用挂钩的函数3, 实现JNI_OnLoad函数JNI_OnLoad是java jni技术的一个实现,每次java层加载System.loadLibrary之后,自动会查找改库一个叫JNI_OnLoad的函数,动态注册的时候,cpp可以通过实现JNI_OnLoad而完成jni的动态注册。1,建

2020-12-28 19:42:55 179

原创 Android.mk 中 ifeq ifneq 的普通与特殊用法详解

(1)ifeq的的常用方法 ifeq ($(变量名), 变量值 ) ........ else ifeq ($(..), ..) ......... else ......... endif ifneq ($(变量名), 变量值 ) ........ else ifneq ($(..), ..) ......... else ......... endif(2)最近在学习Andr

2020-12-16 10:41:14 6665

原创 Java & Android 中常见的线程池使用方法及案例

先看看线程池的源码解读:package java.util.concurrent;import java.util.*;import java.util.concurrent.atomic.AtomicInteger;import java.security.AccessControlContext;import java.security.AccessController;import java.security.PrivilegedAction;import java.security.P

2020-12-14 13:25:22 366

原创 Android UID 和 PID

UID:在 Android 上,一个 UID 标识一个应用程序。应用程序在安装时被分配 UID,应用程序在设备上的存续期间内, UID 保持不变。在Linux中 UID 是用户的ID,由于Android系统设计之初是单用户系统,UID 被赋予了新的使命,数据共享。不同的程序如果要相互访问,只能是UID相同才可以,这使得共享数据具有了一定的安全性。(不同的程序,还需要拥有相同的签名,而每个公司或开发者的签名是唯一的)PID: PID即进程ID,一个应用里可以有多个PID。在Android系统中一般不会把已经

2020-11-20 11:22:23 507

原创 Android Google Lens in Camera

google lens in camera 原文以及翻译:Google Lens in Camera runs within the Android Google Search App (AGSA), which is Google’s main app on Android. Lens SDK is available for download on the Google Lens page. Lens SDK and logo are available for download at Google

2020-11-20 11:21:22 1450

原创 android Camera image plane[0] plane[1] plane[2] 详解

都知道拍完照之后都会回调 private ImageReader.OnImageAvailableListener imageAvailableListener= new ImageReader.OnImageAvailableListener() { // 当照片数据可用时激发该方法 @Override public void onImageAvailable(ImageReader reader) {在拿到ImageReader时我们的操作

2020-11-19 16:26:41 2902 2

原创 Android中m、mm、mmm、mma、mmma的区别

m:编译整个安卓系统makes from the top of the treemm:编译当前目录下的模块,当前目录下需要有Android.mk这个makefile文件,否则就往上找最近的Android.mk文件。builds all of the moudles in the current directorymma:当前目录新增或删除文件后,可以用mma重新编译。mmm:编译指定路径下的模块,指定的路径下面需要有Android.mk这个makefile文件builds all of the

2020-11-16 14:12:04 6759

原创 Android Camera HDR 拍照模式的原理

camera HDR 拍照:(High Dynamic Range Imaging)高动态范围成像1. 什么是HDR?:用来实现比普通数字图像技术更大曝光动态范围(即更大的明暗差别)的一组技术。2. HDR原理:相比普通的图像,可以提供更多的动态范围和图像细节,根据不同的曝光时间的LDR(Low-Dynamic Range)图像,利用每个曝光时间相对应最佳细节的LDR图像来合成最终HDR图像。3. HDR目的:正确地表示真实世界中从太阳光直射到最暗的阴影这样大的范围亮度,现在一般的数码相机和手

2020-11-16 14:06:39 1784

原创 Android.mk编译 ----预编译详解

目前常用到的Android.mk编译目标, 包括编译包、二进制文件、预编译。1.常用编译目标BUILD_PACKAGE(既可以编apk,也可以编资源包文件,但是需要指定LOCAL_EXPORT_PACKAGE_RESOURCES:=true)BUILD_JAVA_LIBRARY(java共享库)BUILD_STATIC_JAVA_LIBRARY(java静态库)BUILD_EXECUTABLE(执行文件)BUILD_SHARED_LIBRARY(native共享库)BUILD_STATIC_L

2020-11-06 16:00:58 1783 3

原创 Android 一个应用多个桌面图标

在开发过程中,可能会遇到需要几个应用图标的情况。理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER:在Android 应用程序开发过程中,Activity入口会增加:android.intent.action.MAIN // 决定应用程序最先启动的Activityandroid.intent.category.LAUNCHER // 决定应用程序是否显示在程序列表里如果只有一个activity的应用程序只声明了 and

2020-10-14 09:48:51 1432 1

原创 Camera acquireLatestImage() 与 acquireNextImage() 的区别

在Camera中获取图片的时候,会遇到acquireLatestImage() 与 acquireNextImage()选择,以下是对这两个方法的解读:acquireLatestImage()  从ImageReader的队列中获取最新的Image ,删除旧images 。 如果没有新图像可用,则返回null 。如果已经close了,那么将不会是最新的数据图像。对于大多情况可以使用acquireNextImage(),它更加适合处理实时数据.。在使用这个方法读取图片的时候,要注意maxImages不能小

2020-10-12 11:11:18 3908

原创 Android Camera架构源码分析 - CameraService启动

Android 最初的框架CameraService是在mediaserver进程中注册的,代码如下: //path: frameworks\av\media\mediaserver\main_mediaserver.cpp int main() { sp<ProcessState> proc(ProcessState::self()); //通过defaultServiceManager()注册服务。感兴趣的可以看看这里面的实现

2020-10-10 16:08:11 855

原创 Android SELinux 权限处理

SELinux 权限修改,我这里罗列出来了3种方案,可以选择解决:1.adb在线修改seLinux该方法适合调试的时候使用,并没有实际解决权限问题Enforcing(表示已打开),Permissive(表示已关闭)getenforce; //获取当前seLinux状态setenforce 1; //打开seLinuxsetenforce 0; //关闭seLinux2.从kernel中彻底关闭修改LINUX/android/kernel/arch/arm64/configs/xx

2020-10-09 10:32:12 648

原创 android中自定义View Canvas.drawCircle()方法的理解

功能说明该方法用于在画布上绘制圆形,通过指定圆形圆心的坐标和半径来实现。该方法是绘制圆形的主要方法,同时也可以通过设置画笔的空心效果来绘制空心的圆形。基本语法public void drawCircle (float cx, float cy, float radius, Paint paint)参数说明cx:圆心的x坐标。cy:圆心的y坐标。radius:圆的半径。paint:绘制时所使用的画笔。实例演示下面通过代码来演示如何在画布上绘制圆形。 @Override pro

2020-09-27 10:37:08 516

原创 Android IPC机制详解--Binder

最近在学习贯穿android 系统的binder,今天就分享下这几天的学习心得:本文主要从以下几个方面来介绍IPC机制1、什么是IPC2、Binder机制原理3、AIDL实现一、什么是IPCIPC是Inter-Process-Communication的缩写,意思是进程间通信或者跨进程通信;说起进程间通信,我们应该首先来了解一下什么是进程。按照操作系统的描述,线程是CPU调度的最小单元,而进程一般指一个执行单元,在移动设备上指一个程序或应用;一个进程可以包含多个线程;为什么要用到多进程?在

2020-09-17 14:04:02 433 1

原创 Android 获取电池电量(广播获取和BatteryManager获取和执行命令获取)

方法一:注册广播(被动接受)IntentFilter filter2 = new IntentFilter();filter2.addAction(Intent.ACTION_BATTERY_CHANGED);registerReceiver(filter2,receiver);接收到广播后,用getIntExtra("level")和getIntExtra("scale")获得相应值intent.getIntExtra("level", 0); ///电池剩余电量intent.getIn

2020-09-07 15:18:52 7547 1

原创 android 深入学习中遇到Bn 和Bp时如何区别

最近在研究surfaceflinger,真心被里面的类名折腾惨了。Bnn 就是native,这是一个怎样的类? 我们继承它的原因是为了实现一个接口,具体点说就是一个BnXXX对应一个IXXX。比如BnSurfaceComposer 对应 ISurfaceComposerI 其实就是interface(接口)的意思。class SurfaceFlinger : public BnSurfaceComposer{…}SF inherit BnSC,let’s see the BnSC:class

2020-09-05 10:25:27 685

原创 Android Framework 学习从这里开始

一、Android 系统结构Linux 系统内核操作系统,直接和硬件交互,包含所有硬件驱动。负责进程管理、内存管理、安全性、网络协议栈等。Linux内核也同时作为硬件和软件栈之间的抽象层。本地函数库本层包含一些C/C++函数库,供上层使用:libc(系统C函数库):专门为嵌入式Linux设备定制的。媒体库:音视频录制和播放,图片的拍摄和展示。Surface Manager :显示管理,界面渲染相关。WebKit :web浏览器相关SGL :底层的2D图形引擎OpenGL|ES :3D图

2020-08-28 16:42:09 261

原创 shell命令行中过滤adb logcat输出的方法【实战】

在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率。本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法。 1、只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp adb logcat | grep -i

2020-08-28 10:40:28 1418

原创 android logcat命令详解 1

Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用.在使用logcat之前,请确保手机的USB调试模式已经开启,可以通过"Setting->Application->Development->USB debugging"来开启。logcat本身是android的shell的一个命令,你可以通过“adb shell”进入shell后执行logcat命令,也可以通过"adb logcat"直

2020-08-28 09:39:38 538

原创 bat脚本基本命令和格式

BAT脚本与shell脚本区别Shell脚本使用Linux/Unix下的命令,一般文件开头以#号来告诉系统这个脚本需要什么解释器来执行(如:#!/bin/bash采用bash而不是dash来执行)。而bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令,它的文件扩展名为.bat 或.cmd。常用命令1:where、cls、title、color、mode conWhere显示符合搜索模式的文件位置: Where \R C:\ *.dll \F \TCl

2020-08-27 15:41:53 2944 2

原创 Android R Camera 新增api Concurrent Camera Streaming

Android 11 添加了 API 来查询对同时使用多个摄像头(包括前置摄像头和后置摄像头)的支持。要在运行应用的设备上检查支持情况,请使用以下方法:getConcurrentStreamingCameraIds() 可返回摄像头 ID 组合 Set,这些组合可与有保证的数据流组合并发进行流式传输(如果它们是由同一应用进程配置的)。isConcurrentSessionConfigurationSupported() 可查询摄像头设备是否可以并发支持相应的会话配置。原文如下:Android al

2020-08-27 10:01:54 1168

原创 Android Camera 录像时音频焦点处理方法

在Camera Video 开发过程遇到一种情况,后台有音乐播放着,此时如果点击录制视频,无法使后台的播放器暂停,此时就需要设置音频的焦点问题处理音频焦点都是通过AudioManager这个类,如下是获得该类实例的方法:AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);下面介绍音频焦点处理相关的一些方法(不同的Android版本处理音频焦点的方式略有差别,以下内容基于Android 4.4

2020-08-18 20:24:46 513

原创 Java 垃圾回收器的GC机制

前言垃圾回收器—GC(Garbage Collection),它与“java面向编程”一样是java语言的特性之一;它与“ c/c++语言”最大区别是不用手动调用 free() 和 delete() 释放内存。GC 主要是处理 Java堆Heap ,也就是作用在 Java虚拟机 用于存放对象实例的内存区域,(Java堆又称为GC堆)。JVM能够完成内存分配和内存回收,虽然降低了开发难度,避免了像C/C++直接操作内存的危险。但也正因为太过于依赖JVM去完成内存管理,导致很多Java开发者不再关心内存分配

2020-08-05 13:31:53 99

原创 Android 中与Java内存结构及堆栈区别

一、认识Android储存结构对于Android来说,存储主要分为三个部分:内存、内部存储以及外部存储,详细介绍如下:(1)内存存储RAM(Random Access Memory)内存与PC的内存是一样的,是用来运行程序,不能用来永久存储数据,手机一旦关机,在内存中的所有数据都将会丢失,内存也是现在人类制造的所有电子设备所必需拥有的。(2)内部存储ROM(Read Only Memory)就是就相当于是PC中的硬盘的角色。用于存储Andoid 设备的操作系统和应用程序的存储介质。也就是说,And

2020-08-05 11:07:07 225

原创 C++中的遇到的不一样的符号

::的作用(1)作用域限定符,当在类体中直接定义函数时,不需要在函数名字的前面加上类名,但是在类体外实现函数定义的时候,必须加上类名并且加上作用域限定符。Student::Display();(2)静态数据成员既可以通过对象名引用,也可以通过类名加::来引用,class Test{public:Display();private:static int a;}Test::a;(3)静态成员函数,也是既可以通过对象名引用,也可以通过类名+::引用。静态成员函数的目的就是为

2020-08-04 15:24:19 120

原创 Android NDK Jni 开发语言使用C和C++的区别

由于Android官方NDK例子大多使用C语言编写,所以当我们想用C++进行开发时,会出现种种错误。下面简单说说几点不同之处,代码中有部分不同之处:1.先来一个用C写的例子:(1)hello.c文件。在C中没有引用,传递的env是个两级指针,用(*env)->调用方法且方法中要传入env. #include <jni.h> jstring Java_com_example_Hello_hello(JNIEnv* env, jobject thiz) { return

2020-07-30 14:41:48 1326

原创 android NDK 与 JNI 的关系以及使用方法

NDKNDK的全拼是:Native Develop Kit。那我们先来看下Android NDK官网是对NDK怎么解释的:Android NDK 是一套允许您使用原生代码语言(例如C和C++) 实现部分应用的工具集。在开发某些类型应用时,这有助于您重复使用以这些语言编写的代码库。简单的来说:Android NDK 就是一套工具集合,允许你使用C/C++语言来实现应用程序的部分功能。NDK还是有很大的价值的:1、在平台之间移植其应用2、重复使用现在库,或者提供其自己的库重复使用3、在某些情况下提

2020-07-30 14:26:51 501

原创 Camera 从零开始的那段时间

时间飞逝,Camera开发也是有2年多了,经过自己努力,从一个菜鸟到”大神“,带引号的”大神“就说说经历吧!那是一个天气晴朗的下午,老大来和我说,Camera部门差人,项目急,让我去帮帮忙,ok,没问题,虽然对Camera一无所知,但是对android开发开始很久了,自认为是没问题的,再说之前还做过二维码扫描,头像上传,人脸识别集成等APP。...

2020-07-29 13:59:27 262

原创 QCom Camera XXXX_lib.h的驱动文件配置

直接从代码进行分析:#define START_REG_ARRAY \{ \ {0xfe, 0x00, 0x00}, \}#define STOP_REG_ARRAY \{ \ {0xfe, 0x00, 0x00}, \}#define GROUPON_REG_ARRAY \{ \ {0xfe, 0x00, 0x00}, \}#define GROUPOFF_REG_ARRAY \{ \ {0xfe, 0x00, 0x00}, \}#define INI

2020-07-29 10:17:25 370

android procmem查看内存使用

procmem 给出了procrank中VSS、RSS、PSS、USS的每一部分组成,包括进程可执行程序本身、共享库、堆、栈的内存占用。这里的信息应该是从/proc/pid/maps文件中获取的.

2021-03-08

ToastDemo.rar

在Android 项目中,如果只能支持竖屏显示,但是UI又需要支持横屏转动,Toast也需要转动,这时候就需要一个可以横屏的Toast,在这里实现了一个简单的Demo供参考

2020-05-27

InsertTestData内存填充.apk

android 内存填充apk,可以根据自己想要的内存大小值设定,然后点击运行之后,当内存被填充到设定值,会自动停止,安全可用,对于存储测试的人员,该apk相当好用

2020-04-07

放电_13063.apk

android 可快速放电的一款apk,实现快速放电,可指定放电范围值,达到范围值将自动停止,安全,放心使用

2020-04-07

android NDK Demo

一个Android NDK开发Demo完整源码,运行生成so文件,下载就可以运行在Android Studio IDE 可以更好的学习NDK JNI开发,有详细注释

2018-01-31

ZendStudio-12.5.1注册码.rar

最强大的PHP IDE Zend Studio 最新版本的 Mac注册文件及方法, 替换zend studio安装目录的plugins文件夹下的 com.zend.verifier_12.5.1.v20150514-2003.jar

2017-09-11

Myeclipse破解代码

Myeclipse的破解代码,破解,破解

2017-04-27

Android Socket与服务端的交互

Android建立Socket并与服务端交互,发送消息与接收消息而封装的一个工具类,可以直接使用

2017-04-22

Android 中必要的工具集

总结出Android项目中必要的工具Log,Toast,SD卡管理,网络管理...

2016-07-07

Android 统一管理Toast弹出框

Android 统一管理项目中的Toast弹出框,这样项目中的弹出框就不会重复

2016-07-07

Android统一管理Log日志

一个Android统一管理的Log类,很方便的管理项目中的Log日志

2016-07-07

基于Android手机的小闹钟源码

基于Android 手机的小闹钟源码,很详细的

2016-07-05

Android 可穿戴设备

Android 智能穿戴设备代码详解

2016-07-05

Android 实现搜索的自动补全

Android 实现搜索的自动补全

2016-07-05

android 圆形菜单

实现酷炫的Android 圆形菜单

2016-07-05

Android 下拉和底部加载

实现下拉和底部加载效果

2016-07-05

Android 反编译工具

Android 反编译工具,该工具可以看源码与资源文件

2016-07-05

ImageView播放GIF动画

自定义ImageView控件播放GIF动画

2016-07-05

Android IOS 支付宝开发

Android IOS 支付宝开发集成 包含有文档解析

2015-08-15

Android Cookie 深度理解

Android每次请求网络都会出现Cookie,方便登录,修改等操作,cookie的作用很大的!

2015-08-15

C#窗体程序成品

是一个计算作业调度的小程序,分为FCFS调度算法和SJF调度算法。

2013-10-24

空空如也

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

TA关注的人

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