Android
文章平均质量分 71
cfc1243570631
这个作者很懒,什么都没留下…
展开
-
Android11快速编译并替换framework.jar
可以看到framework变为了framework-minus-apex,通过stem属性使编译出来的模块还叫framework.jar,这样修改的目的一个是为了向后兼容以前的jar名称,一个也是为了表示现在framework是减去了apex的模块,所以带个minus-apex的后缀。三个目录(不删除会一直卡在开机动画),最后再运行下面的命令重启zygote,这样新替换的framework.jar就生效了。然后把framework.jar push到system/framework/下面,同时还要。转载 2024-07-23 16:49:00 · 100 阅读 · 0 评论 -
startActivity启动流程
从桌面点击应用图标开始到Activity创建并执行onCreate,activity的启动涉及到两个进程system_server(AMS所在进程)和Zygote(如果进程没有创建需要先创建)如下是创建进程的流程,Socket服务端未贴出,app进程的创建可参考 (如下是应用进程已经创建,一直到Activity的onCreate被调起。realStartActivityLocked: 应用进程已经创建。startProcessAsync:应用进程还未创建。原创 2024-06-20 13:41:47 · 299 阅读 · 0 评论 -
Zygote进程的理解
Zygote进程是安卓系统的一个重要进程,由init进程创建而来;另外系统里的重要进程(system_server等)都是由zygote进程fork的,所有的app进程也是由zygote进程fork的。原创 2024-06-17 14:31:39 · 322 阅读 · 0 评论 -
Android build.gradle配置教程 史上最全的Android build.gradle配置教程
从Android Studio3.0后compile引入库不在使用,而是通过api和implementation,api完全等同于以前的compile,用api引入的库整个项目都可以使用,用implementation引入的库只有对应的Module能使用,其他Module不能使用,由于之前的项目统一用compile依赖,导致的情况就是模块耦合性太高,不利于项目拆解,使用implementation之后虽然使用起来复杂了但是做到降低偶合兴提高安全性。如果这样,Gradle在打包时就会提示错误(警告)。转载 2024-01-24 14:59:14 · 2600 阅读 · 0 评论 -
Android Camera FW 里的requestId和frameId
安卓相机frameworks里面经常出现requestId和frameId,最近简单看了一下代码,发现相关流程还是很复杂的,总结来看requestId 就是上层(java)发送的repeating(capture)请求的id,是从0开始递增的。所以综上看 requestId就是一个标记上层下发request的作用,回调metadta的时候方便找到对应的回调接口,所以requestId的作用仅仅是联系APP和FW的,对于HAL来说没有作用。原创 2023-10-07 17:35:08 · 411 阅读 · 0 评论 -
Camera Metadata跨进程传递
Camera Metadata跨进程传递。原创 2023-09-27 14:53:51 · 281 阅读 · 4 评论 -
Camera Surface 从应用到cameraserver的流转
Camera Surface 从应用到cameraserver的流转原创 2022-12-09 15:17:59 · 1430 阅读 · 1 评论 -
CameraMetadata 知识学习整理
CameraMetadata 知识学习整理原创 2022-11-25 10:40:03 · 1097 阅读 · 0 评论 -
Android 后台服务启动Actvity
Android 后台服务启动Actvity。原创 2022-11-18 13:54:57 · 3156 阅读 · 0 评论 -
UIAutomator 2脱机测试(For Android)
UIAutomator 2脱机测试转载 2022-07-16 08:13:16 · 538 阅读 · 0 评论 -
Android 监听当前网络状态是否可以访问Internet
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Hand...原创 2019-11-14 17:42:26 · 233 阅读 · 0 评论 -
copy DB to sdcard
public static void copyDB(){ File dbFile = new File(Environment.getDataDirectory().getAbsolutePath()+"/data/com.hozo.easypanorama/databases/easypano.db"); FileInputStream fis = null; File...原创 2019-09-23 15:00:38 · 161 阅读 · 0 评论 -
JNI_OnLoad简介
一、JNI_OnLoad简介Java JNI有两种方法,一种是通过javah,获取一组带签名函数,然后实现这些函数。这种方法很常用,也是官方推荐的方法。还有一种就是JNI_OnLoad方法。当Android的VM(Virtual Machine)执行到C组件(即*so档)里的System.loadLibrary()函数时,首先会去执行C组件里的JNI_OnLoad()函数。它的...转载 2019-08-15 15:21:55 · 895 阅读 · 0 评论 -
Android Studio 3.0 JNI的实现
https://blog.csdn.net/ziyoutiankoong/article/details/79696279转载 2019-08-15 14:47:54 · 112 阅读 · 0 评论 -
Android touch 事件分发
1. 效果图下面布局中用到的控件都是自定义的,我们可以通过对自定义控件的相关事件方法添加log。练习图2.主要代码Activity @Override public boolean onTouchEvent(MotionEvent event) { Log.i(TAG,"Activity's onTouchEvent returns su...转载 2019-08-08 11:40:03 · 146 阅读 · 0 评论 -
camera2 createCaptureSession
原创 2019-07-31 10:13:24 · 723 阅读 · 0 评论 -
camera api2 open camera
CameraManager 属于 App 进程CamseraService CameraDeviceClient Camera3Device CameraProviderManager 属于 cameraserver 进程CameraProvider CameraDevice 属于 camera hal 进程...原创 2019-07-30 14:41:02 · 277 阅读 · 0 评论 -
Android自定义控件三部曲文章索引
https://blog.csdn.net/harvic880925/article/details/50995268转载 2019-04-28 15:03:23 · 146 阅读 · 0 评论 -
Android ImageView 的scaleType 属性图解
ImageView 是 Android 中最常用的控件之一,而在使用ImageView时,必不可少的会使用到它的scaleType属性。该属性指定了你想让ImageView如何显示图片,包括是否进行缩放、等比缩放、缩放后展示位置等。Android 提供了八种scaleType的属性值,每种都对应了一种展示方式,下面就对每一种scaleType属性值进行图文解释。首先,这个是测试放到ImageV...转载 2019-04-12 10:09:50 · 169 阅读 · 0 评论 -
dispatchTouchEvent onInterceptTouchEvent onTouchEvent
https://blog.csdn.net/qq_30379689/article/details/53967177dispatchTouchEvent 事件分发onInterceptTouchEvent 事件处理onTouchEvent 事件响应1、 如果所有都返回 superdispatchTouchEvent (Activity)dispatchTou...原创 2019-03-22 16:39:22 · 288 阅读 · 0 评论 -
StatusBar 和 NavigationBar 的 隐藏与浸透式
/** * View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。 * View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态栏遮住。 * * View.SYSTEM_UI_FLAG_HIDE_NAVIGATI...原创 2019-02-28 17:42:58 · 424 阅读 · 0 评论 -
mtk camera移植
mtk camera 移植步骤:1, Kernel层驱动代码文件添加/mediatek/custom/doov92_wet_tdd/kernel/imgsensor/下添加imx179_mipi_raw_2lane/ 目录如下:imx179_mipi_raw_2lane - imx179mipiraw_Camera_Sensor_para_转载 2015-01-21 10:33:03 · 1349 阅读 · 0 评论 -
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法 本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装jdk1.6前,执行java -version得到C:\Users\liuxiang2>java -versionjava version "1.7.0_21转载 2015-11-12 09:43:47 · 458 阅读 · 0 评论 -
JDK安装后 没有tools.jar 和dt.jar包的解决办法
出现这个问题的原因是在JDK安装时将JDK和JRE放在了同一目录下,导致了文件的覆盖,致使tools.jar 和 dt.jar包被覆盖。转载 2015-11-15 14:13:45 · 1377 阅读 · 0 评论 -
Linux 信号量
用下面一组函数(系统调用)来实现。int sem_init(sem_t *sem,int pshared,unsigned int value); int sem_destroy(sem_t *sem); int sem_wait(sem_t *sem); int sem_trywait(sem_t *sem); int sem_post(sem_t *sem); in转载 2016-07-20 21:38:16 · 258 阅读 · 0 评论 -
Eclipse 设置中文编码
转载 2016-08-15 09:45:10 · 688 阅读 · 0 评论 -
虚拟机Linux 添加磁盘容量
(1)打开VMware,选择Edit Virtual mache settings,Utilities下拉框中找到Expand如下图(2)将磁盘空间扩大到50G,点击Expand即可,随后进入一个较长的Expand过程,完成后这是新的空间已经增加,但linux环境下还不可见。(3)启动VMware环境下的Linux操作系统,添加新分区,需要root账号身份。原创 2016-11-29 22:02:32 · 2396 阅读 · 0 评论 -
Android ConditionVariable
Android -- ConditionVariable线程操作经常用到wait和notify,用起来稍显繁琐,而Android给我们封装好了一个ConditionVariable类,用于线程同步。提供了三个方法block()、open()、close()。void block()//阻塞当前线程,直到条件为openvoid block(long timeout转载 2016-07-29 17:49:01 · 1203 阅读 · 0 评论 -
android 内置默认输入法
方法一: 修改文件如下: frameworks\base\packages\SettingsProvider\res\values\defaults.xml frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\转载 2017-01-11 16:47:40 · 5200 阅读 · 1 评论 -
Android模拟屏幕点击,滑动等事件
模拟事件全部是通过input命令来实现的,首先看一下input命令的使用: usage: input ... input text input keyevent input tap input swipe 1. keyevent指的是Android对应的keycode,比如home键的转载 2017-03-02 10:00:22 · 4808 阅读 · 0 评论 -
API2 下面 FW/HAL 框架结构
http://www.2cto.com/kf/201510/448011.html转载 2017-02-14 21:12:52 · 575 阅读 · 0 评论 -
eclipse 中 NDK 配置
一、关于NDK:NDK全称:Native Development Kit。 1、NDK是一系列工具的集合。 NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要转载 2017-03-16 10:45:58 · 378 阅读 · 0 评论 -
文件句柄申请太多导致异常 Too many open files
最近做一个压力测试,打开关闭,打开关闭相机应用,当打开到200次左右的时候总是抛出下面的异常03-06 11:48:03.220 5794 5908 E Parcel : dup() failed in Parcel::read, i is 1, fds[i] is -1, fd_count is 2, error:Too many open files03-06 11:48原创 2017-03-07 10:45:31 · 10354 阅读 · 1 评论 -
Activity传递的Parcelable并不是同一个对象
网上清一色的说Activity之间通过parcel传递对象,但是其实这并不是同一个对象。我不知道是我理解错了还是怎么回事?希望看到文章的人点评一下class MyParcelable implements Parcelable { private static final String TAG = "TestActivity"; private String userna...原创 2018-10-24 15:07:30 · 503 阅读 · 1 评论 -
Android Studio 中的个人习惯设置
1、方法参数名提示的取消方法默认情况下 Android Studio 中字符串前面有个 hint,看着不习惯2、设置默认展开方法3、默认文件编码建议使用 utf-8,中国的 Windows电脑,默认的字符编码为 GBK。Settings--> File Encodings。建议将 IDE Encoding、 Project Encoding、 Properties F...原创 2018-12-11 10:29:38 · 544 阅读 · 0 评论 -
Thread.currentThread()与this的区别
转载自: https://blog.csdn.net/yezis/article/details/57513130 希望博主见谅在自定义线程类时,如果线程类是继承java.lang.Thread的话,那么线程类就可以使用this关键字去调用继承自父类Thread的方法,this就是当前的对象。另一方面,Thread.currentThread()可以获取当前线程的引用,一般都是在没有线程...转载 2018-12-18 19:52:10 · 245 阅读 · 0 评论 -
android布局中几个距离单位的区别:px、dp、sp
一、px像素,我们经常说的400*800这种的就是像素,这个比较好理解。二、dp要理解dp,首先要先引入dpi这个概念,dpi全称是dots per inch,对角线每英寸的像素点的个数,所以,它的计算公式如下:比如height和width即为长宽的像素,平方和即为对角线的像素个数,size即我们常说的5寸手机、4寸手机中的5和4,即对角线的长度。显然,一样是5寸的手机...转载 2019-02-28 11:46:50 · 511 阅读 · 0 评论 -
invalidate和requestLayout
总述:View有两个很重要的方法:invalidate和requestLayout,常用于View重绘和更新。Invalidate:To farce a view to draw,call invalidate().——摘自View类源码从上面这句话看出,invalidate方法会执行draw过程,重绘View树。当View的appearance发生改变,比如状态改变(en...转载 2019-02-28 11:48:44 · 446 阅读 · 0 评论 -
Android 实现事件监听的两个方法
package com.demos; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class GetScreen原创 2013-10-07 09:53:41 · 1108 阅读 · 0 评论