Android开发高手课
张绍文
前微信高级工程师,Tinker负责人
立即订阅
12609 人已学习
课程目录
已完结 61 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 焦虑的移动开发者该如何破局?
免费
导读 (1讲)
导读 | 如何打造高质量的应用?
模块一 高质量开发 (25讲)
01 | 崩溃优化(上):关于“崩溃”那些事儿
02 | 崩溃优化(下):应用崩溃了,你应该如何去分析?
03 | 内存优化(上):4GB内存时代,再谈内存优化
04 | 内存优化(下):内存优化这件事,应该从哪里着手?
05 | 卡顿优化(上):你要掌握的卡顿分析方法
06 | 卡顿优化(下):如何监控应用卡顿?
06补充篇 | 卡顿优化:卡顿现场与卡顿分析
07 | 启动优化(上):从启动过程看启动速度优化
08 | 启动优化(下):优化启动速度的进阶方法
09 | I/O优化(上):开发工程师必备的I/O优化知识
10 | I/O优化(中):不同I/O方式的使用场景是什么?
11 | I/O优化(下):如何监控线上I/O操作?
12 | 存储优化(上):常见的数据存储方法有哪些?
13 | 存储优化(中):如何优化数据存储?
14 | 存储优化(下):数据库SQLite的使用和优化
15 | 网络优化(上):移动开发工程师必备的网络优化知识
16 | 网络优化(中):复杂多变的移动网络该如何优化?
17 | 网络优化(下):大数据下网络该如何监控?
18 | 耗电优化(上):从电量优化的演进看耗电分析
19 | 耗电优化(下):耗电的优化方法与线上监控
20 | UI 优化(上):UI 渲染的几个关键概念
21 | UI 优化(下):如何优化 UI 渲染?
22 | 包体积优化(上):如何减少安装包大小?
23 | 包体积优化(下):资源优化的进阶实践
24 | 想成为Android高手,你需要先搞定这三个问题
模块二 高效开发 (9讲)
25 | 如何提升组织与个人的研发效能?
26 | 关于编译,你需要了解什么?
27 | 编译插桩的三种方法:AspectJ、ASM、ReDex
28 | 大数据与AI,如何高效地测试?
29 | 从每月到每天,如何给版本发布提速?
30 | 数据评估(上):如何实现高可用的上报组件?
31 | 数据评估(下):什么是大数据平台?
32 | 线上疑难问题该如何排查和跟踪?
33 | 做一名有高度的移动开发工程师
模块三 架构演进 (9讲)
34 | 聊聊重构:优秀的架构都是演进而来的
35 | Native Hook 技术,天使还是魔鬼?
36 | 跨平台开发的现状与应用
37 | 移动开发新大陆:工作三年半,移动开发转型手游开发
38 | 移动开发新大陆:Android音视频开发
39 | 移动开发新大陆: 边缘智能计算的趋势
40 | 动态化实践,如何选择适合自己的方案?
41 | 聊聊Flutter,面对层出不穷的新技术该如何跟进?
42 | Android开发高手课学习心得
练习Sample跑起来 (8讲)
练习Sample跑起来 | 热点问题答疑第1期
练习Sample跑起来 | 热点问题答疑第2期
练习Sample跑起来 | 热点问题答疑第3期
练习Sample跑起来 | 热点问题答疑第4期
练习Sample跑起来 | ASM插桩强化练习
练习Sample跑起来 | 唯鹿同学的练习手记 第1辑
练习Sample跑起来 | 唯鹿同学的练习手记 第2辑
练习Sample跑起来 | 唯鹿同学的练习手记 第3辑
特别放送 (7讲)
Android JVM TI机制详解(内含福利彩蛋)
专栏学得苦?可能是方法没找对
专栏学得苦?可能你还需要一份配套学习书单
Native下如何获取调用栈?
聊聊Framework的学习方法
Android工程师的“面试指南”
程序员修炼之路 | 设计能力的提升途径
结束语 (1讲)
结束语 | 移动开发的今天和明天
Android开发高手课
登录|注册

练习Sample跑起来 | 热点问题答疑第1期

孙鹏飞 2018-12-15
你好,我是专栏的“学习委员”孙鹏飞。
专栏上线以来很多同学反馈,说在运行练习 Sample 的时候遇到问题。由于这些 Sample 多是采用 C/C++ 来完成的,所以在编译运行上会比传统的纯 Java 项目稍微复杂一些。今天我就针对第 1 期~第 4 期中,同学们集中遇到的问题做一期答疑。设置练习的目的,也是希望你在学习完专栏的内容后,可以快速上手试验一下专栏所讲的工具或方法,帮你加快掌握技术的精髓。所以希望各位同学可以多参与进来,有任何问题也可以在留言区给我们反馈,后面我还会不定期针对练习再做答疑。

编译环境配置

首先是同学们问得比较多的运行环境问题。
前几期的练习 Sample 大多是使用 C/C++ 开发的,所以要运行起来需要先配置好 SDK 和 NDK,SDK 我们一般都是配置好的,NDK 环境的配置有一些特殊的地方,一般我们的 Sample 都会使用最新的 NDK 版本,代码可能会使用 C++11/14 的语法进行编写,并且使用 CMake 进行编译,我这里给出 NDK 环境的配置项。
首先需要去 NDK 官网下载最新版本,下载后可以解压到合适的地方,一般 macOS 可以存放在 ANDROID_SDK_HOME/ndk_bundle 目录下,Android Studio 可以默认找到该目录。如果放到别的目录,可能需要自己指定一下。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Android开发高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • CathyChen 置顶
    非常感谢你们的分享,帮助其他人快速成长,虽然有些地方看不懂,还是会坚持下去,(*^__^*) 嘻嘻……
    2018-12-18
    3
  • peedeep
    请问下老师,这篇文中提到:5. 如果我们没有原始的 obj,那么需要通过libcrash-lib.so 的导出符号来进行解析。我有以下疑问:这里原始的obj指的是Chapter01/sample/build/intermediates/cmake/debug/obj目录下面的so库吗?什么情况下会变成非原始的呢?

    作者回复: 正式的So会去掉debug info

    2019-01-07
    2
  • 我的心情在荡漾
    鹏飞大佬也好厉害
    2018-12-17
    2
  • Mr.张.
    您好,老师,如果我想在DumpCallback里面通过jni去调用java层代码,从而实现native崩溃时回调到java层,可以做得到吗?
    2019-07-24
  • 大白菜
    Breakpad 抓取闪退信息后执行DumpCallback后就马上闪退了,怎么和java log 当时堆栈关联起来?
    2019-05-10
  • 曹昆
    请问下老师:Chapter01/sample/build/intermediates/cmake/debug/obj目录下面的so库,
    ample/build/intermediates/transforms/mergeJniLibs/debug/0/lib和apk包里的so,这三个so有什么区别呢?还有正式包的so去掉debug info,那aarch64-linux-android-addr2line工具执行之后就没效果了,那正式包怎么看native的crash呢?

    作者回复: 会把obj保留下来到服务器中的

    2019-03-15
  • wiikzhao
    gradle文件下,找不到cppFlags和arguments,请问什么原因?
    2018-12-29
  • Lakers
    dump_syms 在mac上面怎么生成?这个要在linux下编译才行吗?

    作者回复: 对的,要在linux下生成

    2018-12-29
  • su
    dump_syms

    这个工具在哪里呢?
    2018-12-24
收起评论
9
返回
顶部