目录

android高级开发面试题,Android面试你必须要知道的那些知识

android高级开发面试题,Android面试你必须要知道的那些知识

前言

现在几乎每个it公司都在开发移动产品,我最早知道Android还是在13年成都某学院上大学的时候,从新闻上知道有这么一家公司,创始人安迪·鲁宾很有名,但安卓到底是做什么的,我并没有关注。

到2014年毕业的时候,Android已经发展到了4.4 版本,百度了一下Android,知道了(应用)开发采用的是Java语言。我当时学过 C,C++,对java有些了解,从成都辗转来到北京,找到的工作正是开发一款Android应用(生活服务类)。这时我有了一个HTC的安卓最新版手 机。

现在做Android移动开发已经有六年时间,从一个什么都不懂的小程序员到现在的项目经理,其中甘苦自知,对Android开发和对Android程序员的职业发展有一些自己的感悟,在这里愿与大家分享和讨论。

本文知识点

身份证识别整体架构
  • 效果演示
  • 身份证识别的应用场景
  • 项目核心架构
身份证识别关键技术
  • NDK开发的原理
  • 什么是JNI
  • OpenCV架构体系
  • OCR技术架构
身份证识别项目实战
  • 关键架构
  • 核心步骤与手写实现
  • 同步运行下IOS windows
  • Android架构

一.什么是身份证识别

https://i-blog.csdnimg.cn/blog_migrate/c17dd56eab6f04b2910b31adb56ca779.png

关键问题分析:找到号码所在区域→获取号码图片→识别身份证号码

二.核心

OpenCV:

OpenCV的全称是Open Source Computer Vision Library是一个跨平台的计算机视觉库。IBM 1999 年开始研发,用C++ 提供接口Mat 数据结构

应用领域:

图像处理. 人脸识别.手势识别.人机交互动作识别.运动跟踪.物体识别 图像分割

Tess-two:

OCR的全称是Optical Character Recognition是一个对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。

tess-two是TesseraToolsForAndroid的一个git分支

使用特征:

1:简单易用

2:开源且支持离线使用

3:为 Android平台定制的java api

NDK开发::

https://i-blog.csdnimg.cn/blog_migrate/10f3a33648e4b701a77dca99bd396caf.png

三.详细架构

https://i-blog.csdnimg.cn/blog_migrate/a443d6e9c1b5911adfd2ad3ae2022cb8.png

问题:

1: 什么是灰度图

2: 什么是二值化为什么?

3: 轮廓检测是什么

4: 图像膨胀是什么

5: 图片分割会导致OOM吗?

6: OCR文本训练如何进行

7: 图文识别的API是怎样的?

https://i-blog.csdnimg.cn/blog_migrate/76d4c60242c2a00eb3346048db9e00ec.png

3.1图像识别核心步骤-灰度化

https://i-blog.csdnimg.cn/blog_migrate/de3a165ea84a7a36aa14b3b951e873d1.png

3.2图像识别核心步骤-二值化

https://i-blog.csdnimg.cn/blog_migrate/5d530c2205c61a789f56d760b1728fba.png

3.3图像识别核心步骤-轮廓检测

所有连续的闭包用矩形框起来

https://i-blog.csdnimg.cn/blog_migrate/0e0d9208cf909fcd72a9adc26b214f64.png

3.4图像识别核心步骤-膨胀

https://i-blog.csdnimg.cn/blog_migrate/4e8c33784056bc8d1faae327335a2f27.png

3.5图像识别核心步骤-轮廓筛选

https://i-blog.csdnimg.cn/blog_migrate/e9c24835903789c0b16bafa3cac821ce.png

3.6文字识别

OCR文字样本→记忆文本→直文字识别

总结

图片上传怎么做?

不能说,接口怎么实现,我就怎么调用,虽然我也是这么做的

要明白:

1:明白什么是Http,从而知道http如何上传图片

2:使用okhttp,retrofit怎么是实现这个过程

https://i-blog.csdnimg.cn/blog_migrate/9c9d9d057bc2c006c67d1e6782b4d56a.png

总结

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己, 从来都是我们去适应环境,而不是环境来适应我们!

这里附上上述的技术体系图相关的几十套 腾讯、头条、阿里、美团等公司20年的面试题 ,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含 知识脉络 + 诸多细节 ,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

https://i-blog.csdnimg.cn/blog_migrate/76506fe7f7631880e5edd40b1ed1b14b.png

https://i-blog.csdnimg.cn/blog_migrate/0d238e96151a24d0154451eb10ed522c.png

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

800358029)]

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。