1.如何删除SQLite中表的个别字段android
参考回答: 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