Android NDK技术详解及应用(Android加壳\图片处理\性能优化)
  完结
收藏课程
9999+

Android NDK技术详解及应用(Android加壳\图片处理\性能优化)

本课程主要讲解NDK技术的基本使用方法,如基本常用的JNI函数、Android系统中能使用的本地库的使用方法和注意事项以及GCC工具的使用,并结合实例熟悉函数的...

适合人群:中级
课时数量:53课时
用到技术:android加壳、android SQLite性能优化、NDK调用DVM函数、NDK处理图片
涉及项目:android加壳方案实现、NDK加载APK实战、android 图片特效处理、NDK做性能优化——SQLite数据库数据插入优化案例、android Hook技术分析与实现

  • 课程顾问贴心解答

    为你推荐精品课程,无论就业还是升职加薪,毫无压力。

  • 名企定制紧随大流

    量身打造紧贴企业需求的实用性课程。

  • 系统教学把控效果

    集学、测、练为一体的学习系统为你科学的安排学习进度,提高效率。

  • 一线大师1对1指导

    课程研发团队内一线资深讲师一对一指导,手把手教学,直到学会。

  • 点播答疑完美结合

    每周2-3次直播解答,保证学员日常学习问题能得到解决。

  • 量身定制学习计划

    告别杂乱的学习方式,我们会根据你的情况定制学习计划。

 

NDK技术在Android中的应用主要是充分利用C、C++语言的一些优势,如运行性能、代码破解难度大,从而提高Android应用的性能和安全,使用应用更具有竞争力,而不至于担心技术和数据被反编译窃取。随着一些黑技术在Android上的运用,如动态加载技术和Hook技术,使Android应用开发更具有灵活性,同时大大降低了Android应用升级的成本。未来可能还会有更多的技术以NDK为桥梁,应用到Android平台上。

 

讲师本人总结实际开发中一些经典案例及实用场景和经验,特意整理录制成视频。本课程全程手敲代码,适合各层次学员学习本视频的知识点。从课程的学习组成结构大家一看也就知道从基础到高级、由浅入深、循序渐进的讲解NDK整个知识体系及实际应用案例。同时带大家查看系统源代码并分析一些系统原理,并讲解基础案例,使学员能快速运用到实际开发中。希望新手能通过此视频快速上手NDK开发,并成功进阶,也希望老手通过此视频能更一步的认识NDK的开发模式。预祝每位学员都能成为NDK开的行家里手。

 

 

1.课程研发环境

案例源代码编译和运行环境以JDK1.7和android-sdk-23以及android-ndk-10e版本为基准, ,以下环境都适用于项目。

开发工具:android studio 1.5正式版, QT 5.0,SourceInsight 3.5;

其他工具:使用到了IDEA PRO工具以及网站查看分析源码。

 

2.内容简介

本课程主要讲解NDK技术的基本使用方法,如基本常用的JNI函数、Android系统中能使用的本地库的使用方法和注意事项以及GCC工具的使用,并结合实例熟悉函数的运用;同时会讲解一些实例,如编译使用第三方开源库、Android应用中使用SQLite数据库优化插入性能,慢慢体现出NDK的技术优势;再结合Android中的一些黑技术,做为一个提高实践,同时较为浅显的描述一些技术原理,这部分会以动态加载DEX文件,Hook技术为实例;最后会深入Android系统源码,讲解一些技术原理的实现。

 

 

jacky老师:6年android应用开发经验,一直致力于android应用开发,具有丰富的android开发经验,独立开发Android商业应用十余款。对NDK开发研究较深,熟练使用android NDK开发,擅长使用NDK解决android开发中出现的问题。对虚拟机加载DEX文件原理及android加壳实现研究较深。

 

 

一、技能储备阶段

第一讲:背景介绍和搭建NDK开发环境

背景介绍和开发环境搭建

 

第二讲:NDK基本类型及签名、字符串及数组操作

01.JNI函数提示—搭建QT开发环境,

02.JNI类型签名和方法签名

03.JNI操作普通、静态、构造方法

04。javap命令的使用

05.JNI操作字符串函数

06.JNI操作数组函数

 

第三讲:使用JNI函数操作Java类、属性和方法

01.JNI操作java类的相关函数

02。JNI操作java对象的相关函数

03。java类属性相关操作函数(上)

04.java类属性相关操作函数(下)

05.java类方法相关操作函数(上)

06.java类方法相关操作函数(下)

07。java属性访问权限,final,类型特殊情况

 

第四讲:局部变量、全局变量、弱变量及资源缓存与回收

01.局部变量、全局变量、弱变量引用概念与操作函数(上)

02.局部变量、全局变量、弱变量引用概念与操作函数(下)

03.弱变量引用操作函数示例

04。资源缓存

05.资源回收

06。Frame资源回收

 

第五讲:异常处理与线程

01。JNI异常处理函数讲解

02。JNI异常捕获函数示例

03。JNI异常抛出函数讲解及示例

04。JNI操作Java线程同步函数讲解及示例

05.pthread常用函数

 

第六讲:本地方法注册、java NIO的JNI操作

01。本地方法的注册的JNI函数及步骤

02.本地方法注册的JNI函数使用示例(上)

03。本地方法注册的JNI函数使用示例(下)

04.JNI操作java NIO的函数及使用

05。JNI使用总结

 

第七讲:NDK中本地库的使用

01.NDK目录介绍

02.SourceInsight安装及android系统源码导入

03。android系统支持的本地库

 

第八讲:使用SWIG自动生成JNI代码

使用SWIG自动生成JNI代码

 

第九讲:NDK支持C++特性介绍使用

01.NDK支持C++特性介绍

02.NDK支持C++特性使用示例

 

第十讲:Android系统中Native API

01.Android.mk文件和Application.mk文件介绍

02.Android.mk文件和Application.mk文件简单编写

03。编译多个本地库

04.访问assets目录函数讲解

05.访问assets目录操作示例及源码阅读(上)

06.访问assets目录操作示例及源码阅读(下)

07.native activity开发介绍(上)

08.native activity开发介绍(下)

 

第十一讲:NDK中可以使用的系统资源

01。build。prop内容介绍

02。读取build。prop内容示例

03.访问set命令环境变量中的内容

04。访问系统中被标记为hide的代码

 

第十二讲:NDK开发调试及性能

01.错误定位

02.调试

03.性能优化

二、应用实战阶段

 

第十三讲:NDK加载APK实战

01.DEX文件加载器ClassLoader的区别

02.java层与DVM虚拟机加载DEX文件流程分析

03.ART虚拟机加载DEX文件处理流程分析

04。java代码加载APK文件示例

05.C++代码加载APK文件示例

06.使用第三方库multidex加载APK示例

 

第十四讲:NDK编译第三方库——编译SQLite库

01。编译sqlite库步骤及C API说明

02.sqlite数据库创建表、插入、查询、删除操作示例

 

第十五讲:NDK做性能优化——SQLite数据库数据插入优化案例

01.SQLite数据库性能优化原理讲解

02。使用java代码的方式向数据库插入数据优化示例

03。使用C++代码的方式向数据库插入数据优化示例

 

第十六讲:使用NDK方式调用DVM函数

01.dlfcn.h头文件中的函数介绍及name mangling规则介绍

02.调用DVM中函数示例 

三、高级进阶阶段

 

第十七讲:android加壳方案实现

01.加壳原理介绍及Dex文件头讲解

02.DVM从内存中加载DEX文件分析

03.从assets目录读取DEX文件内容到内存

04.从libdvm.so库中查找函数代码编写

05.构造ClassLoader类加载器代码示例

06。替换mCookie示例并编写注释

07。构造java层环境及编写java代码并调试项目代码

08.思路总结

 

第十八讲:android Hook技术分析与实现

01.Xposed介绍及代码分析环境搭建

02。Xposed Hook在DVM中实现分析

03.ART Method的invoke方法执行流程分析

04.AndFix库简单使用

05.AndFix库java层实现原理分析

06.apkPatch工具代码实现分析

07.AndFix库的DVM与ART虚拟机代码实现原理分析

 

第十九讲:android 图片特效处理

01。图片特效处理API讲解及环境准备

02.使用java代码处理图片特效示例

03.使用NDK处理图片函数介绍及准备

04.使用NDK处理图片特效示例

05.openCV介绍及性能优化建议

 

第二十讲:android cocos2d-x游戏开发入门

01。coco2d-x介绍及开发环境搭建

02.coco2d-x编译过程讲解及示例代码介绍

 

第二十一讲:NDK技术平台兼容性和前景

NDK技术平台兼容性和前景总结

 

 

 

 

 

 

 

 

本系课程,主要分为三部分完成

第一部分:技能储备阶段,学习使用NDK所需要的技能知识

第二部分:应用实战部分,通过一些应用实例实战,加深对NDK技术在Android应用开发过程中的运用与理解。

第三部分:高级进阶部分,了解NDK技术背后的原理和实现

学完本系列课程后,学员将会达到以下学习目标:

本课程针对有一定Android应用开发基础和C/C++语言基础,并有志于利用C/C++完善Android应用中不足的学员,理解NDK技术的开发模式,能够熟练使用NDK技术,以及NDK技术在Android应用中解决一些实际问题。

 

 

亮点一、项目中使用的第三方代码等采用的均是目前为止流行的版本,讲解时使用的这些代码及框架的流行技术,技术的前沿性可以保证让您的技术在二到三年内不会落伍.

 

亮点二、理论与实战相结合,由浅入深。即照顾到基础学员,又照顾到有一定经验的学员,讲解过程中留有学生思考的时间.

 

亮点三、课程绝大多数代码均是一行一行手工敲入,手把手一步步带领学员从入门到精通.

 

亮点四、整个课程虽案例不多,但整套视频基本上涉及到NDK的基础知识及基本API的使用,而且讲师在讲解过程中原理实现还给出不同思路,学员拿到该案例 后稍加改造就可以用到自己的项目,实用性超强.

 

 

 

1.课程针对人群

本课程针对具有一定的java和C/C++基础(不要求对C/C++很熟悉,懂一些基本语法即可)与一定的android APP开发基础的学员,想通过本课程的学习,了解在android中使用C/C++开发过程、熟练使用java JNI编程及android NDK编程的学员。也适 合于想学习分析android系统中比较前沿的黑技术的学员。  

 

2。我该怎么学,如何才能学好这门课程,给些建议。

2.1、时间上的安排建议

本课程共53课时,如果您时间上充分,建议以每天4-5课时的进度往前学习。 

2。2、学习要求

如果您没有基础,建议还是中规中矩的按照课程进度一点一点仔细观看学习,并一定要把看完的视频中的代码自己手敲一遍,以加深理解和记忆

如果您有基础,可不必按步就搬进行,可以拿你感兴趣的部分去学习,但一定要注意实践,并学会举一反三 

2.3、讲师建议

1。最好看完视频之后,抛开视频,独立自己去把上课中的示例写一遍,看自己是否理解,如果不正确,可以回过头看再看下视频,如果反复,达到真正理解和熟练掌握的目的。

2.对于项目实战部分,一定要自己亲自动手做一遍,不要满足听完就OK了

3。 建议一般听视频,一般拿个纸和笔,做一些记录和笔记,这是一种非常好的学习习惯。

4. 一定不要过于依赖视频,要学会看API和使用搜索引擎,学会思考,学会举一反三

5。 最后祝您学有所成

 

 

课程是属于某个特定的专业技术,掌握该技术后,你可以从事以下职位的相关工作

1。android应用开发工程师

2.android framework开发工程师

3。android NDK开发工程师

 

 

上海快3 秒速赛车官网 秒速赛车官网 北京28预测 秒速赛车官网 秒速赛车官网 秒速赛车官网 秒速赛车官网 秒速赛车官网 秒速赛车官网