Giter VIP home page Giter VIP logo

androidinterview-q-a's Introduction

Hi there, I'm Jacky! 👋

Jacky's github stats

Hi, I'm Jacky, a code lover from China Shenzhen.

  • 🌱 I’m research in areas such as Android/Linux/Kotlin
  • 💬 WeChat: JackyWang0222

androidinterview-q-a's People

Contributors

davidzhong003 avatar dennyson-w avatar doubleyellowice avatar ed-george avatar houmengdi avatar humazed avatar jackyandroid avatar jokermonn avatar mikeyang01 avatar ravidsrk avatar vjs3 avatar xxmbaobao avatar zhuqichao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidinterview-q-a's Issues

不会调用draw()过程,但不会重新绘制 任何视图包括该调用者本身。

Requestlayout,onlayout,onDraw,DrawChild区别与联系-猎豹

requestLayout()方法 :会导致调用measure()过程 和 layout()过程 。 说明:只是对View树重新布局layout过程包括measure()和layout()过程,不会调用draw()过程,但不会重新绘制 任何视图包括该调用者本身。

这句话有错吧?“不会调用draw()过程” 这句应该是会调用draw过程吧?

ANR定位和修正

使用Thread或者HandlerThread时,调用Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)设置优先级,否则仍然会降低程序响应,因为默认Thread的优先级和主线程相同。

将线程的优先级降低了,就应该降低ANR的概率。“否则仍然会降低程序响应”是不是写反了。

404

在线文档 404 了。
image

关于内容的疑问

DecorView的层级深度是已知而且固定的

为什么这么说呢?

另外,如何知道DecorView的层级深度呢?我知道可以在View Hierachy中查看,但如何用代码实现呢?

以下是我的思考:
这里要求的是树的深度。
数据结构里学过求二叉树的遍历。递归遍历和非递归遍历(深度->栈,广度->队列)
我也知道树和二叉树可以转化,但是那样的话好像深度就不一样了吧。

View的布局时候,Android在对View树进行自上而下的布局时,采用的是深度优先算法,而非广度优先算法,即遍历到某个View时,Android会首先沿着该View一直纵向遍历并布局到处于叶子节点的View,只有对该View及其所有子孙View(如果存在子孙View的话)完成布局后,才会布局该View的兄弟节点View。

在源码中也可以找到如下代码:
LayoutInflater.java
http://androidxref.com/6.0.1_r10/xref/frameworks/base/core/java/android/view/LayoutInflater.java

   // Gets the current parser pointer where the node is at the layout level 
    final int depth = parser.getDepth();

参考资料:
http://bfchengnuo.com/2016/08/11/%E7%AC%94%E8%AE%B0-Android%E6%8E%A7%E4%BB%B6%E6%9E%B6%E6%9E%84/

https://www.codeday.top/2017/06/30/26002.html
http://www.programering.com/a/MDNxADOwATY.html

同学,您这个项目引入了606个开源组件,存在19个漏洞,辛苦升级一下

检测到 JackyAndroid/AndroidInterview-Q-A 一共引入了606个开源组件,存在19个漏洞

漏洞标题:serialize-javascript 代码问题漏洞
缺陷组件:[email protected]
漏洞编号:CVE-2020-7660
漏洞描述:Verizon serialize-javascript是美国威瑞森电信(Verizon)公司的一款支持将JavaScript序列化为 JSON超集的软件包。
serialize-javascript 3.1.0之前版本中存在代码问题漏洞。远程攻击者可借助index.js文件中的‘deleteFunctions’函数利用该漏洞注入任意代码。
国家漏洞库信息:https://www.cnvd.org.cn/flaw/show/CNVD-2020-53801
影响范围:(∞, 3.1.0)
最小修复版本:3.1.0
缺陷组件引入路径:@->[email protected]>@vuepress/[email protected]>[email protected]>[email protected]
@->[email protected]>@vuepress/[email protected]>[email protected]>[email protected]>[email protected]
@->[email protected]>@vuepress/[email protected]>[email protected]>[email protected]

另外还有19个漏洞,详细报告:https://mofeisec.com/jr?p=i30427

关于内容的疑问/建议

关于13的单例模式的写法,有更安全的写法

 private static volatile SettingsDbHelper sInst = null;  // <<< 这里添加了 volatile
 public static SettingsDbHelper getInstance(Context context) {  
          SettingsDbHelper inst = sInst;  // <<< 在这里创建临时变量

          if (inst == null) {
                        synchronized (SettingsDbHelper.class) {
                            inst = sInst;
                                        if (inst == null) {
                                       inst = new SettingsDbHelper(context);
                                       sInst = inst;
                                        }
                        }
            }
            return inst;  // <<< 注意这里返回的是临时变量
 }

参考地址:Java 单例真的写对了么?

关于内存泄露的问题

没有复用convertView我认为只会造成内存浪费,并不能算是内存泄露。所谓内存泄露应该是该释放的资源无法被释放,而没有复用convertView的话,在界面(比如Activity)退出的时候是会释放掉的,所以不能算内存泄露。

ps:可回复交流,欢迎拍砖!

[建议]是否考虑整理为gitbook?

起因:因为手机查看md的限制,和移动端查看网页在地铁等情形下体验不好.

有没有考虑把这些文章整理为在 gitbook 上,gitbook 目前支持下载为pdf,这在给去面试路上(公交or地铁)的同学极大的便利,恰巧坐车也很无聊,不如利用起来温故下.

您好,请教一个问题。

相同功能的一个页面,例如登录页面。使用Fragment与Activity在性能上有什么显著的差异么?项目中新开一个Activity的内存开销是怎样的呢?我认为两种方式实现,内存开销的差异上并不是很大,是这样么?期待您的回复,谢谢。

什么导致线程阻塞-58-美团 内容有问题,导致读的时候容易理解错误

初看起来它们与 suspend() 和 resume() 方法对没有什么分别,但是事实上它们是截然不同的。区别的核心在于,前面叙述的所有方法,阻塞时都不会释放占用的锁(如果占用了的话),而这一对方法则相反。

这句话应该是
初看起来它们与wait()和notify()方法没有什么分别

这里写的给人感觉,好像是在特殊说明suspend和resume,但实际上后面发现是在说wait和notify

Android apl

Cannot open play store at my android phone

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.