1.触摸钢琴项目描述 1.1触摸钢琴功能描述 实现手指点按琴键发出对应的音调,按下位置出现星云的粒子特效,滚动实现移动到别的琴键的位置,按下安卓返回键执行关闭。...1.2触摸钢琴所需技术 粒子特效,安卓按键监听。...target, TouchEventType type) { auto btn = (Button*)target; if (btn && type == TouchEventType::TOUCH_EVENT_BEGAN...) { std::string sBtnName = btn->getName(); std::string sSoundName = StringUtils::format("sound/%...注意要在琴键当前层上在挂载一个触控层。在触摸的点处播放粒子特效。 2.3监听安卓按键 初始化中增加允许接收按键事件的函数。
布局很简单,代码就是打个日志看看,为了不影响阅读,放在最后 Android事件处理机制真是个磨人的小妖精,被她卡过两次,一卡住就不行玩安卓,跑过去玩html、js、css了 最好自己动手测试一下,...onInterceptTouchEvent:决定了是否拦截该事件 false:不拦截 true:拦截---此时当前控件执行onTouchEvent方法。...---- 二、事件处理机制对view.setOnClickListener的影响 对于View1来说:setOnClickListener: 能执行必须前面的分发,不截断,畅通无阻, 并且自己的...onTouchEvent返回super.onTouchEvent(event),有一个环节出现意外都无法触发 对于ViewGroup2(也就是View1的父容器),所有均默认,如果View1的onTouchEvent...返回false 则点击View1的时候ViewGroup2的setOnClickListener会触发。
public class MyNativeModule extends ReactContextBaseJavaModule{ } 实现getName方法。该方法用于返回RN代码需要寻找的类的名称。...二、RN用消息机制方式与安卓原生代码切换 实现效果:在原生代码中添加一个按钮,当用户从RN界面调用原生代码就会进入到原生代码开发的界面中,而点击原生代码中的按钮就会返回到RN界面。 ?...1、在与MainApplication同级的目录下创建一个Activity。Activity是android系统最小的调度单位。 ? 创建名称为MyActivity的空活动。...三、RN用Promise机制与安卓原生代码通信 使用Promise机制也是RN与原生通信的一种方式。在原生代码的MyNativeModule文件中创建桥接方法。...四、RN用callback回调方式与安卓原生代码通信 按照上文中提到的方式,在原生模块中暴露一个桥接方法给RN调用。 参数传入一个成功的回调和一个失败的回调。
(); System.out.println(clsName); } 可以看到,我们使用forName必须传入完整的类名. 3.使用Object自带的getClass返回自描述Class...我们上面使用的getName(); 那么我们还可以使用getSuperclss(); 获得父类自描述类(Class),然后继续调用getName();获取父类的名称....} 当然,我使用的是getClass();首先获得自己的Class,然后在获取父类的Class,最后调用父类的Class的getName();获得类名....请注意 newInstance.我们可以利用指定参数.创建一个该类对象.在以后的安卓逆向中.可能会需要. 2.Modifier类 这个类则是传入类型则是调用Construct类中的getModifiers...();返回构造方法的类型.传入.然后可以判断是什么属性.
Class类,类类型的概念 12 在面向对象的世界中,万事万物皆对象。...()可以获取类的名称 c.getSimpleName();//不包含包名的类的名称 c.getMethods()获取类的【public方法】集合,【包括继承来的】 ***** 注意【所有方法都是Method...(class),如int.class String.class2. getName()得到方法的名称3. getParameterTypes()获得参数列表类型的类类型,如参数为(int,int)则得到...为这个类的类类型的具体名称 c1.getName ---> intc2.getName ---> java.lang.String 类的全称c2.getSimpleName ---> String 不包含包名的类的名称...(); Class c2 = list1.getClass(); System.out.println(c1 == c2); //反射的操作都是编译之后的操作 /* * c1==c2结果返回
FlutterEngine Java 相关流程源码分析》 《Flutter Android 端 FlutterView 相关流程源码分析》 《Flutter 绘制动机 VSYNC 流程源码全方位分析》 《Flutter 安卓...@NonNull private final DartExecutor dartExecutor; //用来管理安卓组件和Flutter plugins插件。...@NonNull private final FlutterEngineConnectionRegistry pluginRegistry; //localization的安卓端实现插件。...//创建一个DartExecutor并将flutterJNI和安卓平台的assetManager实例传递进去。...但是到目前 Flutter 2.2 版本为止,FlutterEngineGroup 依旧处于实验特性阶段,不推荐在正式项目中使用,参见官方 multiple-flutters 文档。
field.isSynthetic()) { lstfieldname.add(field.getName()); }...代码里的实现步骤: 定义生成属性名称字符串的List 获取到把传入进来的泛型类的所有的属性字段数组,然后再插入到我们的List里面,注:在我们遍历字段的时候一定要判断field.isSynthetic...()=false的,否则会列出一些系统里自带的属性如this,0等。...代码编写 这里我们就没再新建一个安卓项目,用在我现在正在做的一个程序里面一个页面进行测试。...列了四个字段,我们在构造函数里面直接给其赋值了,就不再多写代码。 Sign生成签名类 ? ? ---- 运行的结果 ? 点击业务Fragment后显示新的结果 ?
messagingEnabled参数控制onMessage函数是否有效,如果不主动设置,则该值为onMessage函数是否定义的结果为值。...网页端的window.postMessage只发送一个参数data,此参数封装在RN端的event对象中,即event.nativeEvent.data。data 只能是一个字符串。...onContentSizeChange func 该函数在Rn api上并未提及,且在低版本rn上并没有 其对应Android端桥接方法为: @ReactProp(name = "onContentSizeChange...to show loadingView on first load 具体为设置第一次加载数据时是否显示loading状态视图,默认值为true. webview 实现与RN代码简单交互 不管安卓还是...参看:https://github.com/alinz/react-native-webview-bridge 实现起来,稍微复杂些,安卓IOS端都需引入依赖。
形如:xxx组成的闭合标签 安卓的res目录下的xml想必大家都是否熟悉,它们最终都是在代码中被读取并解析发挥效果的 安卓的SharedPreferences是以Xml的形式存储数据的...,就连AndroidManifest注意一看也是Xml 可以说xml涉及到了安卓的很多方面,我们并不陌生,Xml最大的好处就是解耦,容易复用和更换 安卓的Xml解析有Pull解析、Sax解析和Dom...pull解析.png Pull解析概述 Pull是安卓内置的,基于事件触发的解析器 Pull解析器小巧轻便,解析速度快,简单易用 主动从解析器中获取事件,可以在满足了需要的条件后不再获取事件,结束解析...XmlPullParserFactory.newInstance(); //XmlPullParser pullParser = factory.newPullParser(); //获得Xml解析器--等价上两句...()) {//拿到标签名称 case "weapon"://如果标签是weapon //新建一个
127.0.0.1:62001 //连接设备 adb devices //查看连接设备 adb disconnect 127.0.0.1:62001 //断开连接 模拟器名称 默认端口 雷电安卓模拟器雷电安卓模拟器...5555 BlueStacks(蓝叠安卓模拟器) 5555 逍遥安卓模拟器逍遥安卓模拟器 21503 夜神安卓模拟器夜神安卓模拟器 62001 天天安卓模拟器天天安卓模拟器 5037 安卓模拟器大师安卓模拟器大师...-s 查看系统的所有应用 adb shell pm list packages -3 查看第三方应用 adb shell pm list packages -u 查看当前系统所有应用及卸载的应用...adb shell pm clear (跟上包名) 不卸应用只清除数据或缓存 adb push (跟上要下载的东西的路径)/(手机的存放位置)/ 从电脑上的东西传送到手机上...3 模拟home键 adb shell input keyevent 4 模拟返回键 adb shell input keyevent 5 拨号程序 adb shell
重写(Overriding) 重载(Overloading) 类的数量 父子类、接口与实现类 本类 方法名称 一致 一致 参数列表 一定不能修改 必须修改 返回类型 一定不能修改 可以修改 异常 可以减少或删除...,但不能扩展 可以修改 重载(Overloading) 重载发生在本类,方法名相同,参数列表不同,与返回值无关,只和方法名,参数列表,参数的类型有关....("参数"+n.getClass().getName()+","+string.getClass().getName()); } //参数顺序不同 public void out...(String string,Integer n){ System.out.println("参数"+string.getClass().getName()+","+n.getClass...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
Class类的使用 1) 在面向对象的世界里,万事万物皆对象 A. Java语言中,普通数据类型,静态成员不是对象,其他皆对象 B. 每一个类也是对象 C. ...() (1) 基本数据类型返回类型名 (2) 类返回包名+类名类的名称 2. c1.getSimpleName() (1) 返回不带包名的类的名称 栗子:通过反射可以获取到任何类的信息 需求:打印类的信息...该方法java内调用底层c语言实现 // 获取累的名称 System.out.println("类的名称是:" + c.getName()); // Method...继承而来的 Method[] ms = c.getMethods(); // c.getDeclaredMethods()获取的是所有该类自己声明的方法,不...String returnName = returnType.getName(); // 得到方法的名称 name[i] = ms[i].getName(
() (1)基本数据类型返回类型名 (2)类返回包名+类名类的名称 2.c1.getSimpleName() (1)返回不带包名的类的名称 栗子:通过反射可以获取到任何类的信息 需求:打印类的信息,获取类的...// 获取累的名称 System.out.println("类的名称是:" + c.getName()); // Method类是方法对象 // 一个成员方法就是一个Method /...-得到的是返回值类型的类类型 Class returnType = ms[i].getReturnType(); // 得到返回值名字 String returnName = returnType.getName...(); // 得到方法的名称 name[i] = ms[i].getName(); // 获取参数列表类型--得到的是参数列表的类型的类类型 Class[] parameterTypes...* java中集合的泛型,是防止错误输入的,只在编译阶段有效,绕过编译就无效了 * * 验证:可以通过方法的反射来操作,绕过编译 */ try { Method m = c2
可以看到在 jobhandler 目录下有一个 SampleXxlJob.class ,在这个类中有一个 demoJobHandler(String param) 方法,这个方法也就是上一章节中我们在调度中心注册的任务...具体来看下方法的注释、返回参数和参数列表。 ...这里需要提的一点是在之前的版本中是通过继承 IJobHandler 和在类上加注解的方式进行任务标识,在最新版中则抛弃了原有的做法,将任务的粒度细化到了方法级别。 ...() + "#" + method.getName() + "] ."); } // 检查当前任务名是否已经被使用,注意这里是通过任务名称来进行任务判重的...; 获取被注解方法的相应信息,根据注解中的任务名称,调用loadJobHandler(name)方法检查该任务是否已经注册; 进行方法编写范式检查,主要检查方法名称、入参类型以及返回值类型是否符合要求;
; /** * @author jujun chen * @date 2020/03/23 */ public class ClassLoaderTest { /** * 返回类加载器的名称...,如果未指定返回null */ @Test public void getName() { ClassLoader classLoader = this.getClass...(); System.out.println(module.getName()); } /** * 返回系统类加载器。...("lang"); System.out.println(pk.getName()); } /** * 返回此类加载器定义的所有软件包。...* * 包默认值优先于类加载器的默认断言状态,并且可以通过调用setClassAssertionStatus(String, boolean)在每个类的基础上重写 。
今天打算写一下Handler机制的原理及源码解析,Handler在我们的开发中用到的频率还是非常高的,同时这也是一个非常基础的知识点,但是即使是基础知识,有很多工作两三年的安卓开发依然是一知半解,搞不清楚原理...handler.obtainMessage(); msg.obj= "hello world"; handler.sendMessage(msg); } 我们在实际的开发中基本上都是这样类似的写法...extends Handler> klass = getClass(); if ((klass.isAnonymousClass() || klass.isMemberClass...msg.recycleUnchecked(); } } 那么接下来我们从头到尾过一遍Handler机制,首先Looper在程序启动的时候系统就已经帮我们创建好了,那我们去看一下方法里面的实现...true; } Looper.loop()会进入轮询,然后从Looper获取MessageQueue ,再调用MessageQueue .next(),这个方法不再解析,简单的说就是把当前的消息返回
因为不照镜子看不清楚自己的全貌,“镜子”就是为了解决这个问题出现的(为我们提供全面分析类的能力) ?...好吧,我知道这听起来还是很模糊,让我们一步一步来: 类也是对象 在java里有一句话:万物皆对象, 即使是int等基本类型,虽然本质上不是对象,但行为却也和对象密切相关(基本包装类型和自动装箱) 所以有一个可能完全打破我们常规思维的论断是...= returnClass.getName(); //获取返回值所属类的类名——也即返回值类型 System.out.println(name + "方法的返回值类型是" + returnName...Class对象调用getName方法就取得了返回值所属的类的名称,也即返回值类型 通过method.getParameterTypes()获取方法各参数的Class对象组成的数组 MyClass.java...API中getDeclaredXXX和getXXX的区别在于前者只获取本类声明的XXX(如成员变量或方法),而不获取超类中继承的XXX, 后者相反 2.
,类的 getSimpleName 方法返回对象的基本名称,因为它将出现在其声明中。...此数据捆绑在 Package 类中,该类由对类对象上的 getPackage 方法的调用返回。...之前,只研究了如何获取构造函数对象的数组,从中可以获取构造函数的名称。 在本节中,将重点介绍如何检索特定的构造函数。 众所周知,在 Java 中,没有一个类的两个构造函数共享完全相同的方法签名。...请记住,当不设置运动行为时,它默认为 false,如最后两个断言所示。 7. 在运行时检索 以前,只检索字段的名称。在本节中,将展示如何在运行时获取和设置它们的值。...那些不采用参数类型的参数使用空变量参数进行检索,只剩下一个参数,即方法名称。 接下来,将展示如何在运行时调用方法。 默认情况下,知道 Bird 类的 walks 属性是假的。
✅简易的安卓天气app(一)——解析Json数据、数据类封装 ✅简易的安卓天气app(二)——适配器、每小时数据展示 简易的安卓天气app(三)——城市管理、数据库操作 ✅简易的安卓天气app(四)—...(源码见页尾✨) 本项目用到的天气api接口天气api 详细操作内容见第一篇-->简易的安卓天气app(一)——解析Json数据<-- 此接口当我们默认不拼接参数,直接访问会得到当前位置的温度Json...数据,这不就弥补了我们在定位方面的缺陷了吗,那么很好,当我们加上参数之后(此api根据城市查询的参数需+&city=(城市名称))那么,当我们只加了参数却没有加参数值(&city=)他还是会根据当前位置进行定位...所以接下来就是进行安卓SQLite数据库的一些操作,把当前位置信息保存到数据库中(城市名,城市温度,更新时间) 待实现效果: 数据库成功插入当前位置数据信息(之前测试插入过几条的测试对照用数据):...插入之后,后续要进行的操作就是实时更新数据库 涉及内容 SQLite数据库操作,创建数据库,新建表,增删查改操作 适配器adapter添加点击事件 页面传值跳转项目结构 其他内容暂不涉及,本文章只包含城市管理