34. 各位大佬开发h5
和native
的混合APP时候,要先把数据存到h5
的localstorage
,然后再刷新界面,各位大佬都是怎么做的。我每次都load
2次url
没办法控制进度条了
解答: Js
调用,通过原生的JSInterface
通知js
代码刷新
33. 大家好资讯一个问题我tinker
补丁下载成功以后为啥程序跑到这里就崩了,如果不下载补丁可以正常解析。
<com.baidu.mapapi.map.MapView |
解答:主要是混淆的原因。这是百度的自定义控件,安装apk后 可能是a.c.b.MapVIew
这样就提示找不到,解决办法,尽可能定位到bug点,不替换activity类
32. 新安装的应用,系统是不是也会通过PMS扫描,把组件存档存到Packges
缓存中去,什么流程?
解答:对的,流程和上课讲的一样
31. 之前我提的那个关于分包 , 配置指定类未能成功保留到主包classes.dex
的那个问题~老师有没有什么问题排查的建议?
我拿老师的项目源码 加一个class
, 可以正常保留到主包,而我自己却在自己的项目中,这样操作失败了,因为我的项目是公司实际的项目, 很多东西,其中肯定是某些东西给影响了,冲突了,导致失败, 但是不知道应该如何去排查,希望老师可以提一些排查的建议。
解答:第一步:先查看在gradle
中keep方法
是否执行了;第二步:反编译apk 查看最后添加的class
在哪个dex
下
30. Glide缓存框架,设置的内存缓存maxsize为1g,我改成100m,测试发现退出MainActivity
,内存并没有降下来,不知道什么情况
解答:
在最新的8.0 9.0 系统中 Google更改了gc回收机制。
调用System.gc() GC并不会立马被执行,解决办法,给apk设定限制内存 如125M
或者开启其他apk情况下,测试。 加大gc回收概率
29. 老师,知道微信公众号推送消息48小时限制怎么解决?
解答:没办法解决
28. vivo手机悬浮窗权限判断问题,vivo的悬浮窗权限用系统api去检查的时候,是有权限的,但是实际去显示悬浮窗的时候,他的悬浮窗权限会被vivo的i管家拦截。
解答:没办法解决,悬浮框是比较重要的系统权限,一般有厂家改写了
27. 进程没活下来,是咋回事
解答:保活有很多限制,目前只能做到尽可能保活。
如9.0版本直接放弃吧。目前最好的方式是白名单机制和谷歌账号保活
26. 老师在IoC的RecyclerView条目点击那节课,为什么下面这种就报错了呢?
(R.id.btn) |
解答:
|
25. 群里有没有大神遇到过这个问题并解决的,配置了ndk环境之后创建项目会报这个错误
CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAMis not set. You probably need to select a different build tool. |
解答:

24. 《动态加载第三方应用 - 插件化架构详解》学了这节公开课有个疑问。如果有个业务app里面有application
,主app里面需要做额外的处理不?是把application
里面需要初始化的方法放在业务app某个activity
里面执行吗?
解答:
1、需要将业务app的application配置到appconfig中。
2、主app中初始化时,通过反射调用业务app的init方法,将自己的上下文传入
23. 《Android人工智能离你并不遥远,OpenCV实现人脸识别》课程下的代码导入studio中报这个错,导入项目运行最后提示c++_static
代替gnustl_static
,只改了下这里。 AS版本是最新的,还需要其他配置吗?
解答:使用:gnustl_static
。openCV是使用这一个函数模板库编译的
22. emoji
表情在android
ios
和web
使用的方案
解答:参考:https://www.jianshu.com/p/d82ac2edc7e8
21. 发现Bugly
没有内测分发项,该怎么上传基线版本?或者有没有其他的平台推荐?
解答:推荐:友盟(Umeng)
20. Tinker
热修复是不是不支持9.0呀,还是需要什么特殊配置?
解答:支持9.0设备,插桩的方式虽然用到了反射技术,但不被黑名单列入
19. 老师请问一下,Annotation
注解的生命周期我自己定义的时候怎么选择?
解答:
/** |
SOURCE源码级绝大部分场景用不上一般是谷歌源码。CLASS用于编译期处理好比ButterKnife框架,RUNTIME指的是运行时通过反射技术。视真实场景再定义
18. 如果讲述安卓源码的时候,希望尽可能选用最新android API版本来讲
解答:彭老师的移动架构师专题,讲解的是9.0源码哦
17. 能不能教一下调试jni的方法?
解答:
单纯C/C++调试可以尝试Visio Studio IDE(老鸟)
新人建议:LLDB插件工具
16. 老师,安卓在线源码地址多少?
解答:点开左边“友链”,有放在里面
15. 上次讲事件分发的那个老师,在讲解ViewGroup
的dispatchTouchEvent
时,有一个问题让我很困惑,就是利用mChildrenCount
遍历View
层级进行事件分发时,我的理解是mChildrenCount
标识的是当前ViewGroup
所包含的子View
的个数,不知道是否正确?
解答:是的
14. coordinatorlayout可以把viewgroup
作为child
吗?我这边把ConstraintLayout
作为behavior
的child
,这个behavior
没有跟着coordinatorlayout
动起来,我想要动起来。我的xml
里没有引用到behavior
解答:可以,这些技术点会在正式课程高级UI详细讲解
13. 有人做过通过蓝牙麦克风录音的吗?通过AudioRecord来录音。有没有什么推荐的文章之类的?
解答:参考文章:https://blog.csdn.net/linzekai100/article/details/79487903
12. android编译后报这个错误:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节UTF-8 序列的字节 1 无效 |
有人遇到过吗?
解答:将xml文件单独处理为UTF-8格式,再导入项目中重新编译
11. 蓝牙耳机的SCO通道采集录音,在通过蓝牙耳机输出,声音太小,同学们有遇到过这样的问题吗?
解答:暂未涉及这类项目
不过可以参考这篇文章:https://blog.csdn.net/cai784921129/article/details/53024091
10. sqlite删除的数据可以找的回来不?
解答:不可以
9. 有人搞过蓝牙开发吗?对device里面的major类有什么看法没?
解答:主要设备类段是定义蓝牙设备的最高粒度级别。设备的主要功能决定了其主要类分组。此主要类字段的分配在表中进行了定义。
public static final int AUDIO_VIDEO 音频/视频(耳机、扬声器、视频显示/VCR...) |
8. 这种导航定位怎样才能定位到准确的位置啊?
(淘宝APP商品详情页,点击评论/详情/推荐,会定位到具体的区域)
解答:可以通过getTop()
获取到控件相对父容器的位置,然后调用ScrollView的scrollTo()
方法可以滚动到指定View的顶部
7. 两边文字对比,有不一样的地方就变红,有什么思路吗?
解答:可以将两段文字进行对比,获取到不同的文字的或不同文字的下标,然后通过
String s = HTML.fromHtml("<font color=\"#ff0000\">1</font>2"); |
的方式修改相应文字的颜色,再调用TextView
的setText()
方法将修改后的文本设置就可以了
6. 彭老师,对象锁为啥用长度为零的对象数组?而不用对象?性能上有啥区别么?
解答:零长度的byte
数组对象创建起来将比任何对象都经济。
查看编译后的字节码:生成零长度的byte[]
对象只需3条操作码,而Object lock = new Object()则需要7行操作码
5. 用三方SDK来做IM通讯聊天和短视频播放,用哪个三方比较好,都有什么优势呢?
解答:通讯聊天这块最好是根据自己公司的业务,需求,然后去搜索多个第三方的官方,找他们的技术顾问进行询问,IM这块老师之前用过环信。
4. 项目中没有做过HTTPS和数据加密这块,网上有看过大概说的什么流程,但是感觉不是可信,比如说电商项目中,怎么去做订单交易这块数据加密,实现HTTPS一个的流程是怎么样,如果可以的希望能够更贴近业务案例来说明下。备注:老师手上如果有现成的资料的话,可以直接分享资料给同学。
解答:关于https需要自行翻阅资料,该协议包含的内容非常多。
另外电商项目中的数据加密,只要有普通的加密即可,比如base64,这样只要能保证客户端与服务器端在进行数据交互时不裸奔即可。但需要注意的是,客户端如果有比较私密的信息最好用非对称加密比如rsa,只加密关键数据。另外,客户端需要进行apk加固,让破解的人更难获得客户端源码。这一块是客户端需要进行的加密。
需要注意的是,如果订单数据在客户端进行了加密,还需要服务器端同步进行加密,比如你的客户端发送的数据为orderid=1&amount=100&userid=1 那么你需要将这些数据进行对称加密,比如md5
,生成一个唯一码,让服务器端同样对数据进行加密比对,确保该数据没有被篡改,简而言之,服务器端在对客户端进行数据校验时,要以服务器端的数据为主,确保客户端过去的数据与服务器一致。
3. 序列化的错误,怎么有遇到过吗?
java.lang.RuntimeException: Parcel android.os.Parcel@1e48b6d7: Unmarshalling unknown type code 3276854 at offset 540 |
解答:序列化时数据读写顺序要一致,writeToParcel
里写的顺序要和CREATOR
里读的顺序一致。
2. 怎样在一个方法里返回一个网络请求返回的结果啊?
解答:网络请求返回结果是异步操作,可以通过回调方法返回结果
1. jsbridge
有没有推荐的文章,比较高级一点的
解答:https://blog.csdn.net/zuggs_/article/details/80649669
高级点的就是深挖原理了,同学可以自行查找类似文章即可