经常在项目中遇到一些知识点,但是由于比较零散不成系统,就先写在这里作为保存,以后添加到知识体系树中。
1、ua是基于服务器的一种识别,服务器根据你的ua看向服务器发起交互请求的一方是什么内核什么平台是app还是浏览器,从而下发看是html页面或者json数据,服务器也可以根据这个进行页面适配,比如有的浏览器不支持js脚本。
2、混合开发的时候经常接触到webview,从而出现两个让我感觉比较混乱的名称WebViewClient与WebChromeClient,那么这两个类到底有什么不同呢?WebViewClient主要帮助WebView处理各种通知、请求事件的(比如你要alert就不能通过这个实现),WebChromeClient主要辅助WebView处理JavaScript的对话框、网站图标、网站title、加载进度等看上去他们有很多不同,实际使用的话,如果你的WebView只是用来处理一些html的页面内容,只用WebViewClient就行了,如果需要更丰富的处理效果,比如JS、进度条等,就要用到WebChromeClient。
更多的时候,你可以这样
WebView webView;
webView= (WebView) findViewById(R.id.webview);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());
webView.getSettings().
setJavaScriptEnabled(true);
webView.loadUrl(url);
优先级 | 用法&示例 |
---|---|
MAX(最高) | 用于重要和紧急的通知,告知用户时间关键型状况,或必须予以解决方可继续执行当前任务。例如来电、闹钟、日历提醒等等。 |
HIGH(高) | 主要用于重要通信,例如包含用户特别感兴趣的内容的消息或聊天事件。高优先级通知也会触发浮动通知(Heads-up)显示。微信、QQ 等即时通讯应用就是很好的使用场景。 |
DEFAULT(默认) | 用于不属于此处所述其他任何优先级的所有通知。 |
LOW(低) | 用于开发者希望告知用户但不是很紧急的通知。低优先级通知最好放在列表底部,用户要求接收相关通知,但这些通知的优先级永远不会高于紧急或直接通信。例如热门微博、促销信息等等。 |
MIN(最低) | 用于上下文或背景信息,该类通知的图标不会出现在状态栏中,用户只能在展开的通知栏中找到它们。比如天气信息或位置信息。 |
(表格内容内容参考自 Android 应用开发规范)
总体而言,Default、High 和 Max 这三个级别应用于那些涉及到另一方用户、时效性高且有必要中断我们正在进行的任务的通知;相反,Low 和 Min 这两个优先级内的通知也可能是我们感兴趣的内容,但这些内容不会涉及到一个正在与我们互动的用户,时效性相对不高并且更适合我们在空闲时间再进行浏览。
因此在开发中,可以根据需要设置通知的优先级。优先级充当一个提示,提醒设备 UI 应该如何显示通知。 要设置通知的优先级,请调用 NotificationCompat.Builder.setPriority() 并传入一个 NotificationCompat 优先级常量。有五个优先级别,范围从 PRIORITY_MIN (-2) 到 PRIORITY_MAX (2);如果未设置,则优先级默认为 PRIORITY_DEFAULT (0)。
4、app安装后的存储问题
Android在手机上有三个地方可以存储数据,一个是getfiledir,这个是app内部的一个存储空间很小很小,一般是放数据库或者shardedpreference文件,还有一个是 getexternalfiledir(“这个参数如果传null就是这个文件夹,如子文件果不为空就是这个文件夹下的某个的名字”);这个路径是会随着app被删掉而删掉,一般放专属这个app的文件 最后一个是getExternalStorageDirectory()这个也是sd卡里
获得路径 getCacheDir()方法用于获取/data/data//cache目录 getFilesDir()方法用于获取/data/data//files目录
5、 包名和签名:
包名不一致:系统会认为是个新的软件,这就不算升级了
包名一致,签名不一致:系统会提示先卸载之前安装的版本,才能继续安装新的