activity

都说衣不如新人不如故,技术是学新不学旧的?IPC+view+Handler+线程。

梦想与她 提交于 2020-01-02 22:30:36
刚刚过去2019,新的一年2020年。都说衣不如新人不如故,技术是学新不学旧的?可是旧的知识不巩固,根基不固很容易在面试或者实战遇到很大的问题的 以下知识点PDF版后续可见 更多面试内容等等 (更多完整项目下载。未完待续。源码。图文知识后续上传github。) ( VX:mm14525201314 ) https://github.com/xiangjiana/Android-MS 一丶线程篇 1、线程池的好处? 四种线程池的使用场景,线程池的几个参数的理解? 参考答案 : 使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解决资源不足的问题。如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或则“过度切换”的问题,归纳总结就是 重用存在的线程,减少对象创建、消亡的开销,性能佳。 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞 提供定时执行、定期执行、单线程、并发数控制等功能。 Android 中的线程池都是直接或间接通过配置 ThreadPoolExecutor 来实现不同特性的线程池.Android 中最常见的类具有不同特性的线程池分别为: newCachedThreadPool : 只有非核心线程,最大线程数非常大,所有线程都活动时会为新任务创建新线程,否则会利用空闲线程 ( 60s 空闲时间,过了就会被回收

android自动化测试--appium运行的坑问题及解决方法

淺唱寂寞╮ 提交于 2020-01-02 18:21:47
问题 1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress 之前的会话没有关闭,然后你又运行了测试实例,也没有设置覆盖. 解决: 1. 重新停止appium服务,开启Appium服务 2. 在Genarel Setting那里设置覆盖Session,重启Appium 测试结束在AfterClass加driver.quit() 2. error: Failed to start an Appium session, err was: Error: Command failed: C:\Windows\system32\cmd.exe /s /c “D:\android-sdk-windows\platform-tools\adb.exe -s adb server version (32) doesn’t match this client (36); killing… wait-for-device” error: could not install smartsocket listener: cannot bind to 127.0.0.1:5037: 没有链接上手机或者模拟器,请确认已经连接成功,重新链接 3.

沉浸式和软键盘冲突

亡梦爱人 提交于 2020-01-02 18:20:32
问题:实现顶部状态栏沉浸式后,点击底部自定义的输入框,弹出软键盘后,输入框被遮挡 解决: import android.app.Activity; import android.graphics.Rect; import android.view.View; import android.view.ViewTreeObserver; import android.widget.FrameLayout; /** * Created by Administrator on 2016/11/21. */ public class ChenJingET { public static void assistActivity(Activity activity) { new ChenJingET(activity); } private View mChildOfContent; private int usableHeightPrevious; private FrameLayout.LayoutParams frameLayoutParams; private ChenJingET(Activity activity) { FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content);

shell 命令 help 的语法

会有一股神秘感。 提交于 2020-01-02 10:47:19
什么都不带的文字是必填的、不可变的 带 <> 的是必填的、可变的 带 [] 的是可选的 如: start-activity 是不可变的、必填的 -P <FILE> 是可选的 如果输入了 -P ,那 file 就是必填的 </div> 什么都不带的文字是必填的、不可变的 带 <> 的是必填的、可变的 带 [] 的是可选的 如: start-activity 是不可变的、必填的 -P <FILE> 是可选的 如果输入了 -P ,那 file 就是必填的 </div> 来源: CSDN 作者: 今晚打老虎1996 链接: https://blog.csdn.net/weixin_41486929/article/details/103798616

AndroidManifest.xml文件综合详解

喜欢而已 提交于 2020-01-01 02:53:07
一,重要性 AndroidManifest.xml是Android应用程序中最重要的文件之一。它是Android程序的全局配置文件,是每个android程序中必须的文件。它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件(activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息。 因此,该文件提供了Android系统所需要的关于该应用程序的必要信息,即在该应用程序的任何代码运行之前系统所必须拥有的信息。一个典型的Android应用程序的结构如下图所示: 二,主要功能 它指定了该应用程序的Java包:该包名作为应用程序的一个独特标识。 它描述了应用程序组件:该应用程序由哪些activity,service,broadcast receiver和content provider组成。它指定了实现每个组件的类以及公开发布它们的能力(例如,它们能持有哪个Intent信息)。这些声明使Android系统知道这儿有什么组件以及在什么条件下它们可以被载入。 它决定那些进程将容纳应用程序组件。 它声明了本应用程序必须拥有哪些许可,以便访问API的被保护部分,以及与其他应用程序交互。 它也声明了其他应用程序在和该应用程序交互时需要持有的许可。 它列出了Instrumentation类

AndroidManifest.xml文件详解(activity)(四)

半腔热情 提交于 2020-01-01 02:51:41
android:multiprocess 这个属性用于设置Activity的实例能否被加载到与启动它的那个组件所在的进程中,如果设置为true,则可以,否则不可以。默认值是false。 通常,一个新的Activity实例会被加载到定义它的应用程序的进程中,以便应用程序的所有Activity都运行在同一个进程中。但是,如果这个属性被设置为true,那么这个Activity的实例就可以运行在多个进程中,允许系统在使用它们的进程中来创建实例(权限许可的情况下),这几乎是从来都不需要的事情。 android:name 这个属性用于设置Activity的实现类(Activity的子类)的名字。这个属性值应该是完整的Java类名,如:com.example.project.ExtracurricularActivity。但是,可以用简写的方式,名字第一个字符用“.”符号,如:.ExtracurricularActivity。它对应的包名是在<manifest>元素中指定的。 一旦发布了应用程序,就不应该改变这个名称了(除非设置了android:exported=”false”)。 这个属性没有默认值,名称必须被指定。 android:noHistory 这个属性用于设置在用户离开该Activity,并且它在屏幕上不再可见的时候,它是否应该从Activity的堆栈被删除。如果设置了true

AndroidManifest.xml

戏子无情 提交于 2020-01-01 02:48:12
AndroidManifest.xml配置文件的根元素,必须包含一个元素且指定xlmns:android和package属性 xlmns:android指定了Android的命名空间 package是标准的包名,为了避免命名空间的冲突,一般会以应用的域名来作为包名 android:versionCode:是给设备程序识别版本用的,必须是一个整数值,代表App更新过多少次 android:versionName则是给用户查看版本用的,需要具备一定的可读性比如“1.0” android:installLocation是安装参数,instllLocation有三个值可以选择: internalOnly(必须安装到内部才能运行), auto(系统将会根据存储空间自己去适应), perferExternal(系统会优先考虑将APK安装到SD卡上。当然最终用户可以选择为内部ROM,若SD存储已满,也会安装到内部存储上)。 注:需要进行后台类监控的APP最好安装在内部,而一些较大的游戏APP最好安装在SD上 为了保证Android应用的安全性,应用框架指定了比较严格的权限系统,一个应用必须声明了正确的权限才可以使用相应的功能 android:icon这个是整个APP的图标,图片一般放在drawable文件夹下 android:allowbackup是否将程序加入到系统的备份和恢复架构中

初冬太冷?圣诞无处可去?那跟我一起来学Android吧

*爱你&永不变心* 提交于 2019-12-30 23:55:28
又到年底了,每到这个时候,我们都会慢慢反思,这一年都做了什么?有什么进步?年初的计划都实现了吗?明年年初有跳槽的底气了吗?况且今年的互联网环境太差,需要自己有足够的知识储备,才能够应对这凌冽的寒风。 本文主要是整理了中高级安卓需要会的(或者说面试被频繁问到的内容),主要作为参考大纲,之后会陆续更新每个详细部分,供大家参考,互相学习。 面试板块(PDF版如下): BAT面试合集(Binder,组件化插件化,热修复,AOP,QQ换肤,虚拟机,https,线程池原理,音视频原理) 算法合集(Hash,KMP 等) 中小厂面试合集(内存泄漏,Handler,View,MVC.MVP.MVVM,) 大厂相关更新技术(Glide,数据库,NDK) 面试小知识(java小知识) 设计模式(设计模式原则和分类) 数据结构(数据结构等等) 网络编程(三次握手和四次握手,Volley,OKHttps,Retrofit) 源码解析(属性动画实现原理等) 多线程解析(线程同步,进程线程) 性能优化(Webview,内存泄漏和内存溢出等) ( 顺手留下GitHub链接,需要获取相关面试或者面试宝典核心笔记PDF等内容的可以自己去找 ) https://github.com/xiangjiana/Android-MS 一丶设计模式与使用场景 (如)建造者模式: 将一个复杂对象的构建与它的表示分离

Android之使用Bundle进行IPC

别说谁变了你拦得住时间么 提交于 2019-12-30 21:47:14
一、Bundle进行IPC介绍 四大组件中的三大组件(Activity、Service、Receiver)都是支持在Intent中传递Bundle数据的,由于Bundle实现了Parcelable接口,所以它可以方便地在不同的进程之间传输。当然,传输的数据必须能够被序列化,比如基本类型、实现了Parcelable接口的对象、实现了Serializable接口的对象以及一些Android支持的特殊对象,具体内容可以看Bundle这个类,就可以看到所有它支持的类型。Bundle不支持的类型无法通过它在进程间传递数据。 二、使用方法 1.打包数据发送 Intent intent1 = new Intent(MainActivity.this, ThirdActivity.class); Bundle bundle = new Bundle(); bundle.putCharSequence("name", "zhangmiao"); bundle.putInt("age", 20); intent1.putExtras(bundle); startActivity(intent1); 2.接受数据 Intent intent = getIntent(); Bundle bundle = intent.getExtras(); String name = bundle.getString(

Android四大组件之Activity

匆匆过客 提交于 2019-12-30 19:16:58
Activity类呈现了一个封装了窗口显示处理功能的空白屏幕。一个空的Activity并不是特别有用,所以需要使用Fragment, 布局和视图来创建UI. 1. Activity的基本使用 (1)要把UI分配给一个Activity,需要在onCreate方法中调用setContentView. (2)要在一个应用程序中使用一个Activity,需要在Manifest中对其进行注册。在Activity标签中可以添加intent-filter节点来指定能够用来启动该Activity的intent。 2. Activity栈 Activity栈是当前所有正在运行的Activity的后进先出的集合。栈顶为当前可见的Activity. 3. Activity的状态 活动状态: Activity位于栈顶,可见且具有焦点。 Android会不惜一切代价来保持它处于活动状态并根据需要销毁下面部分的Activity. 暂停状态: Activity可见但是没有焦点。当一个透明或非全屏Activity位于该Activity之前时处于该状态。系统在极端情况下会终止暂停的Activity. 停止状态: Activity不可见。当系统其他地方要求使用内存时它们会成为被终止的首要候选对象。 非活动状态:Activity被终止,已经从Activity栈中移除。 4. Activity状态改变监控 onCrear