zoukankan      html  css  js  c++  java
  • 每日一练 20190526

    1.如何删除SQLite中表的个别字段

    参考回答:
    
        SQLite数据库只允许增加字段而不允许修改和删除表字段,只能创建新表保留原有字段,删除原表
    

     2.使用SQLite时会有哪些优化操作?

    参考回答:
    
    使用事务做批量操作
    及时关闭Cursor,避免内存泄露
    耗时操作异步化:数据库的操作属于本地IO耗时操作,建议放入异步线程中处理
    ContentValues的容量调整:ContentValues内部采用HashMap来存储Key-Value数据,ContentValues初始容量为8,扩容时翻倍。因此建议对ContentValues填入的内容进行估量,设置合理的初始化容量,减少不必要的内部扩容操作
    使用索引加快检索速度:对于查询操作量级较大、业务对查询要求较高的推荐使用索引
    

     3.Android中进程和线程的关系? 区别?

    参考回答:
    
    线程是CPU调度的最小单元,同时线程是一种有限的系统资源
    进程一般指一个执行单元,在PC和移动设备上一个程序或则一个应用
    一般来说,一个App程序至少有一个进程,一个进程至少有一个线程(包含与被包含的关系),
    通俗来讲就是,在App这个工厂里面有一个进程,线程就是里面的生产线,但主线程(主生产线)只有一条,而子线程(副生产线)可以有多个
    进程有自己独立的地址空间,而进程中的线程共享此地址空间,都可以并发执行
    

     4.如何开启多进程 ? 应用是否可以开启N个进程 ?

    参考回答:
    
        在AndroidMenifest中给四大组件指定属性android:process开启多进程模式
        在内存允许的条件下可以开启N个进程
    

     5.为何需要IPC?多进程通信可能会出现的问题?

    参考回答:
    
    所有运行在不同进程的四大组件(Activity、Service、Receiver、ContentProvider)共享数据都会失败,这是由于Android为每个应用分配了独立的虚拟机,不同的虚拟机在内存分配上有不同的地址空间,这会导致在不同的虚拟机中访问同一个类的对象会产生多份副本。比如常用例子(通过开启多进程获取更大内存空间、两个或则多个应用之间共享数据、微信全家桶)
    一般来说,使用多进程通信会造成如下几方面的问题
    
    静态成员和单例模式完全失效:独立的虚拟机造成
    线程同步机制完全实效:独立的虚拟机造成
    SharedPreferences的可靠性下降:这是因为Sp不支持两个进程并发进行读写,有一定几率导致数据丢失
    Application会多次创建:Android系统在创建新的进程会分配独立的虚拟机,所以这个过程其实就是启动一个应用的过程,自然也会创建新的Application
    
  • 相关阅读:
    TLS回调函数
    MySQL-based databases CVE-2016-6664 本地提权
    go语文中panic的使用
    Redis实现分布式锁与任务队列的思路
    mysql添加权限权限用户
    php压缩html代码减少页面响应时间
    Docker搭建nginx+php-fpm运行环境
    vscode使用phpxdebug调试
    PHP7引用类型
    PHPFPM模式三种运行模式
  • 原文地址:https://www.cnblogs.com/jiayonghua/p/10892892.html
Copyright © 2011-2022 走看看