- 博客(179)
- 资源 (5)
- 收藏
- 关注
原创 Android Framework学习笔记(2)----系统启动
SetupSelinux:安全策略。每个类型的进程都有自己的权限,能否访问网络,能否访问文件,接收广播等。.rc文件:run command的缩写,是一堆脚本指令,init进程可以读取rc文件来运行脚本,从而启动其它进程。在解析和执行.rc文件的过程中,会fork一个zygote进程。而安卓上其他的应用进程都是由zygote进程孵化的。init是系统中的第一个进程,其它进程都是它的子进程。SecondStageMain:挂载额外文件,设置进程OOM等级,一个APP,可以有多个进程,一个进程有一个VM。
2024-04-08 23:03:58 531 1
原创 android framework 学习笔记(1)
框架从上至下:应用层(Application),java framework(Application Framework), C++ framework(Libraries)/Android Runtime, Linux kernel。
2024-04-01 07:15:42 234
转载 校正Camera预览画面方向
本文来源:Android Camera1 教程 · 第二章 · 预览第6部分。其镜面处理部分,描述错误。旋转270或90度,效果相同,并不能解决镜面问题。如果没有做任何画面方向的校正,我们看到的画面很可能是横向的,这是因为手机上的摄像头传感器方向不一定是垂直的。在做预览画面方向的校正之前我们先来了解五个概念,分别是自然方向、设备方向、局部坐标系、屏幕方向和摄像头传感器方向。自然方向当我...
2024-01-03 10:21:15 66
原创 问答--Anaconda
什么是Anaconda?Anaconda是python开发环境的管理软件,你可以用它根据python的版本,创建不同的开发环境,并在多个开发环境间进行切换。Anaconda的主体是conda和python(以及与之兼容的各种库)。conda类似于pip,可以下载,安装,更新不同版本的软件。注:anaconda中也包含pip.为什么要用Anaconda?与Python版本有关。当前存在2,3两个大版本,但不兼容。因此,对于不同的python脚本,版本的灵活切换是一个切实的问题。而anacond
2021-03-26 12:00:34 217
原创 关于工作方法的总结
去年一直在忙碌,累得不行。回头想想却不知道忙了什么。心里郁闷得很,于是与其它几位同事私聊,发现大多数同事都有类似的问题。所以想把问题列出来,并寻找解决方式和方法。期间,也有同事提出建议,例如采用敏捷开发之类的解决方案,加入看板等可视化工具等。个人不抵触,只是细想下来,敏捷开发侧重团队视角,对于个人,“架构”还是偏重。所以,还是想通过细节的调整,完成个人工作方式的改变。不论团队采用何种合作方式,都要...
2020-03-14 14:20:40 493
原创 Android Camera1小结
1.概述本文将仿照此前博文Android NDK Camera2小结的方式,来记录Camera1的使用。Camera1仅为Java实现(不必纠结于此,Native实现...JNI反调...你懂的~且性能差别不大)。本文的讲解基于UML Component图,描述Camera1核心对象及API的调用生成关系。如缩略图不清晰,可点击放大。Component图中,模块为函数,节点为对象。...
2019-09-28 22:33:30 1109
原创 Android NDK Camera2小结
1.概述Android自带camera API有两种,Camera1和Camera2。其中,Camera1始于Android最初版本,仅为java层实现。Camera2则有两种实现。Java层Camera2始于andorid 5.0。Native Camera2则开始于android7.0(API level24)。本文将对Native Camera2的使用(仅预览功能)进...
2019-09-23 23:44:52 12106 7
原创 The content of the adapter has changed but ListView did not receive a notification
java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but...
2019-09-17 10:34:58 267
原创 android_native_app_glue框架使用流程
使用原因最近项目中用到ndk camera,因此,学习了一下google所提供的ndk sample。sample中有两个module,分别是basic和texture-view。texture-view module将textureview作为传参,传入ndk camera。而basic module通过android_native_app_glue框架绑定对应Activity,无需传入...
2019-08-13 18:56:20 4221
原创 YUV简介
最近项目中遇到YUV->RGB的转换,顺便对YUV进行了一下简单了解。解决了以下疑问。(1)什么是YUV。(2)YUVxxx采样格式是什么含义。(3)为什么可以存在xxx采样格式。(4)YUV的存储格式。话归正题。概述YUV是颜色编码方式,常用于视频及图像处理中。其中的YUV是三个分量。“Y”表示明亮度(Luminance或Luma),也就是灰度值。“U...
2019-08-10 18:20:26 2068
原创 Android 自动刷新自定义相册
在camera开发过程中,发现若将camera拍摄的相片存放至自定义相册时,有时不能及时的在相册中找到对应相片。不同的设备对于自定义相册的更新时机不同。有的手机,需要重启才会更新,有的则是及时。因此,为了适配,不论什么机型,强制更新是必要的。网上查找,多有两种方案。一是发送系统广播,一是使用MediaScannerConnection对象。对于广播而言,其局限性在于,android4.x之...
2019-07-09 22:58:49 1085
原创 Android亮度自动调节
最近在做人脸识别项目。在抓取人脸时,发现了很多问题。其中旋转角度和光线问题最令人抓狂。Camera拍摄照片可能存在0度/90度/180度/270度的(右侧)旋转,不同设备不同。例如,小米3w,0度;小米8,270度。所以需要获取照片后不能立即使用,需要根据旋转角度,对照片进行处理,以方便人脸位置的获取。关于如何实现,是另一话题,改天再论。光线问题,其实是非常感官的因素。同样的处理代码,同样...
2019-07-09 22:45:58 3665 1
原创 关于Android Camera的曝光补偿(Exposure Compensation)
什么事曝光补偿?曝光补偿是指,通过增加或者减少光线的摄入量,来提高或降低照片的亮度。曝光补偿存在一定范围,比如-2至2,或者-3至3,单位为EV,可以理解为exposure value。每增加或者降低1EV,光线的摄入量便增加或降低1倍。android camera的曝光补偿为阶段性变化,每次变化1/2或1/3,该数量级被称为step。android camera可以通过以下五个A...
2019-06-18 00:13:20 10361 1
原创 关于Android Camera变焦
本文所述Camera,为Camera1,即为android.hardware.camera。其常用变焦方法有5个(1)public boolean isZoomSupported ()(2)public void setZoom (int value)(3)public int getZoom ()(4)public int getMaxZoom ()(5)public Lis...
2019-06-12 20:05:36 2265
原创 constraintLayout注意事项
在16年I/O大会上,google发布了全新的布局-ConstraintLayout,其他布局和ConstraintLayout比起来,根本就没有存在的必要了。ConstraintLayout的出现,改善了Layout嵌套的情况,其可拖拽操作的特性使得布局设计更加方便。但在使用时,遇到两点问题,现记录如下,以便再次落坑。(1)constraintLayout中app:srcCompat设置的图...
2019-06-08 16:54:38 327
原创 "XXXXX" doesn't include the application-identifier and keychain-access-groups entitlements.
前日真机调试,报错如下:Showing All MessagesAutomatic signing is unable to resolve an issue with the "xxxxx" target's entitlements. Automatic signing can't add the application-identifier and keychain-access-...
2019-03-15 10:51:05 5876 2
原创 我在北京的日子(13)
惬意的时光不多,也只能忙里偷闲。似乎这就是步入中年的写照,亦或仍是无病之呻吟,很是讨厌!敏感,一直是个头疼的问题。2019年1月9日,阴冷,立水桥,病假中。记得上一个本命年,还是在研究生。那时意气风发。球场上无拘无束…如今暮然回首,也只剩梦里乐呵了。谁能想到,这仅是一眨眼的事情。18年初,在家人提醒下,换上红色套装,心里不免还是别扭。怎么就三十六了?真TM快。可不等你继续抱怨,时间已经推着你前...
2019-01-10 00:50:17 1157 3
原创 我的人工智能之旅——偏斜类问题
偏斜类问题正样本数占样本总数的比例极小时,容易出现偏斜类问题。例如癌症测试。样本集合中仅有0.5%的癌症样本,99.5%的正常样本。通过某一假设函数后,得到1%为癌症患者,99%为正常样本。虽然总的正确率高达99%,但假设函数并不理想。因为,我们的目的是为了,检测出是否得癌。这时候,如果将99%的准确率提升至99.2%,无疑是一个较大的提升,虽然,在数值上来看,只有0.2%。因此,...
2018-10-16 15:14:54 958
原创 我的人工智能之旅——概率统计基础(更新中)
偏差体现的是,学习算法的期望预测与真实结果的偏离程度。通常出现在欠拟合的情况下。方差体现的是,同样大小的训练集的变动所导致的学习性能的变化。通常出现在过拟合的情况下。训练效果不错,但测试效果不好。数学期望,即平均值。公式为方差是指,每个样本值与全体样本值的平均数之差的平方值的平均数。公式为均方差即为标准差,是方差的算术平方根。公式为均方误差,与均方差一字之差,但却与方差相近,将...
2018-10-12 11:12:02 1063 1
原创 我的人工智能之旅——假设函数模型的选择
如何选择假设函数模型通常假设函数的模型为,其中n为最高次数,那么如何来确定n的取值呢?通常的做法是,(1)确定多个n值,例如,形成多个假设函数(2)将数据集分成三部分,训练集,交叉验证集,测试集,通常所占比例分别为60%,20%,20%。(注意,测试集选定后,不再变动。)(3)使用训练集对不同的假设函数模型进行训练,确定最优参数。(注意,在训练过程中,需要假如正则化惩罚...
2018-10-12 10:12:53 859 1
原创 python3.7 IDE(Eclipse)
下载Eclipse之所以选择Eclipse,而非其他python IDE,是因为Eclipse的包容性,可以适用于Java, c等多种语言,使用方便。下载路径https://www.eclipse.org/downloads/添加python插件Help->Install New Software...->add注意:安装完后,需要重启eclipse。设...
2018-10-10 11:31:27 2217
原创 python3.7安装(Anaconda)
MAC本身自带python,本机版本为2.7。可以进行更新,但网上教程过于啰嗦,因此使用anaconda进行3.7版本的安装。使用anaconda安装python,较手动安装python更为方便。anaconda不仅会自动安装python,而且会设置好环境变量,同时包含很多实用的工具包,例如numpy,不用二次安装。anaconda可以到官网https://www.anaconda.c...
2018-10-10 10:49:32 47265 1
原创 我的人工智能之旅——近邻算法KNN(K-Nearest Neighbor)
在图像识别中,图像分类是首要工作。因为需要将不同类型的图像先进行排除。近邻算法是最简单的算法之一,但由于其弊端的存在,本篇只做了解性的简单介绍,K近邻算法的实质将测试图片在已经分类好的,具有不同标签的训练数据图片中,找到K张最相似的图片,进而根据K张图片中类型的比例大小,推断图片类型。判断图片的相似程度,就需要用到距离算法。我们知道,图片的电子存在形式是多维的矩阵数据,不同的维度代表区域(...
2018-10-09 10:30:49 1041
原创 我的人工智能之旅——神经网络
神经元,neuron神经网络,Neural Networks激活函数,activation function权重,weight输入层,input layer输出层,output layer隐藏层,hidden layer向前传播,forward propagation人工神经网络人工神经网络是一种机器学习算法,兴起于上世纪八九十年代,但由于其本身计算量较大,受制...
2018-08-31 14:39:02 2596
原创 我的人工智能之旅——基本数学基础
1.自然常数自然常数e,为无限不循环小数,数值约为2.71828...,其数学定义为,即。2.幂&指数幂(power),是指乘方运算的结果。是指x个a相乘,称为a的x次幂。其中,a为底数,x为指数。指数运算,也称为幂运算。常用的幂运算公式如下:(1)(2)(3)(4)(5)(6),其中(7),其中3.对数若,其中a>0且a1,则,a...
2018-08-31 14:26:16 3422 1
原创 我的人工智能之旅——微积分基础
1.导数从一元函数图像上看,某一点的导数,即曲线在该点的切线。一个函数在某一点的导数,描述了这个函数在这一点附近的变化率。当函数f(x)的自变量,在一点x上产生了一个增量h,若因变量的增量与自变量h的比值,在h趋于0时的极限如果存在,那该比值即为f(x)在点x处的导数。这里要注意一下几点(1)不是所有的函数都是可导的。(2)可导的函数一定是连续的。(3)不连续的函数...
2018-08-31 14:25:55 6238
原创 我的人工智能之旅——线性代数基础
1.矩阵矩阵,matrix,为m行n列的数据阵列。例如下例,为4x3阶矩阵。2.方阵mxn阶矩阵的m=n时,称为方阵,n阶方阵。3.单位矩阵单位矩阵,是指对角线数据为1,其它数据为0的n阶方阵。4.逆矩阵逆矩阵,matrix inverse。只有方阵才有逆矩阵。n阶矩阵A的逆矩阵,必须满足以下条件其中I为n阶单位矩阵。不是所有的矩阵都有逆矩阵。对...
2018-08-31 14:25:41 2092
原创 我的人工智能之旅——正则化
无论线性回归,还是逻辑回归,都需要对假设函数进行设定。而假设函数的设定,将影响到预测结果的准确性。因此,如何判断假设函数是否合适,以及如何修改假设函数将变得十分重要。本文,我们将记录假设函数的正则化。在记录的过程当中,将涉及以下概念。(1)过度拟合,overfitting(2)欠拟合,underfitting(3)正则化,regularization(4)惩罚项(或正则化项),pe...
2018-08-31 14:25:13 936
原创 我的人工智能之旅——梯度下降vs正规方程法
本文将涉及以下知识点(1)特征缩放(2)均值归一化(3)正规方程优化梯度下降算法在上一篇博文中,我们了解了梯度下降算法,它为解决线性回归问题提供了思路。但梯度下降的迭代推算过程,较为耗时。简单地说,整个算法是一个不断尝试收敛的过程。如果能够降低算法的尝试次数,以及每次迭代的算法复杂度,那么,便能更高效的解决线性回归问题。影响梯度下降算法收敛速度的因素很多,例如样本集合大小,...
2018-08-31 14:23:39 1857
原创 我的人工智能之旅——逻辑回归
本文,将涉及以下知识点,(1)决策边界,decision boundary(2)凸函数,convex function(3)非凸函数,non convex function此前所讨论的问题,都为线性回归问题。本文将介绍逻辑回归算法,该算法为分类问题提出解决方案。正文如下逻辑回归逻辑回归,logistic regression,由于历史问题,算法名称中包含“回归”字样,但其解...
2018-08-31 14:21:00 1320
原创 我的人工智能之旅——线性回归
本文将涉及以下知识点(1)线性关系(2)线性回归(3)假设函数(4)代价函数(5)学习速率(6)梯度下降(7)特征向量相关的线性代数或微积分知识,可参照另两篇博文我的人工智能之旅----线性代数基础知识我的人工智能之旅----微积分基础知识以下是正文。线性关系解释线性回归之前,先来看一下线性关系。什么是线性关系?如果自变量与因变量存在一次方函...
2018-08-31 14:20:39 5572 1
原创 我的人工智能之旅——引子
人工智能不想人云亦云,于是来刨别家祖坟,一探究竟。人工智能,一个热得不知所措的话题。就跟当年的“云”一样,聊得臭大街了,但什么是云?就想把你绕晕,其实都在云里雾里。人工智能,artificial intelligence,缩写AI。由于命名的开放性,使得其定义轮廓较为模糊。简单来说,它是计算机学科的分支之一,是使用计算机模拟和学习人类思维过程和智能行为的学科。人工智能已经存在人们身边很...
2018-08-31 14:19:31 464
转载 LaTeX详解
函数、符号及特殊字符声调语法效果语法效果语法效果\bar{x}latex数学符号表(2)” style=”border:none; max-width:100%”>\acute{\eta}latex数学符号表(2)” style=”border:none...
2018-07-20 15:05:10 4708
原创 ECC签名格式
之前进行ECC的签名验证,发现签名的长度总是不同,查了不少资料才找到相应格式。签名格式为TLV嵌套格式,签名的主体分为R和S两部分。R(或S)的长度等于ECC私钥长度。R(或S)前的T为0x02,签名T为0x30。总体格式如下:30 + LEN1 + 02 + LEN2 + 00 (optional) + r + 02 + LEN3 + 00(optional) + s当r或s的第1字...
2018-07-16 22:28:45 5879 1
原创 基于蓝牙适配器的PC与Android端通讯
首先,直接给Demo,对于只想使用的朋友,直接下载使用即可。Demo效果如下。(1)PC端(2)Android端接下来,我们看一下实现。(1)Android端(2)PC端吐槽适配器适配器的性能也是参差不齐。此前摁着绿联的蓝牙适配器,试了3天。同样的代码,问题百出。后来转用奥视通(ost108),几分钟便过了。不管是添加设备时的认证过程的人性化设计,还是设备服务驱动的安装速度,天壤之别~...
2018-07-06 19:24:21 5262 17
原创 Python3学习笔记:文件
目录操作os模块提供了很多方法来完成常见的目录操作。本节我们介绍几个常用方法。至于其他方法,可以通过dir(),help()了解。示例为目录的创建和删除操作。import osdirname=os.path.abspath('.')+'\\txt\\' if not os.path.exists(dirname): os.makedirs(dirname) print("c...
2018-06-27 17:25:56 366
原创 Python3学习笔记:包
若目录下存在__init__.py,则该目录被python视为一个包(package)。__init__.py也是一个模块,可以编写代码。但其主要功能是定义__all__。当执行from packageName import *时,仅导入__all__所指定的内容。__all__默认为package下所有模块,但不包括子package。例如,目录结构为在P1下的__init__.py中,重新定义_...
2018-06-26 13:06:33 333
原创 Python3学习笔记:模块
Python代码通常以.py文件形式保存。而每个.py文件都可以看作是一个模块。当一个模块调用另一个模块时,便需要import语句。在此前的章节中,我们以看到import语句的使用。若在同一package下,则只需要调用import moduleName即可。否则需要使用from package.moduleName import moduleName。...
2018-06-25 23:56:09 548
基于蓝牙的PC与Android端通讯DEMO
2018-07-06
microsoft visual c++ 14.0
2018-06-25
Java文件结构解析工具
2014-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人