4、UIDocumentInteractionController UIDocumentInteractionController主要是用来实现同设备上app之间的共享文档,以及文档预览、打印、发邮件和复制等功能...*documentVc = [UIDocumentInteractionController interactionControllerWithURL:url]; documentVc.delegate...= self; [documentVc presentPreviewAnimated:YES]; } #pragma mark - UIDocumentInteractionController...代理方法 - (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController...*)controller{ return self; } - (UIView *)documentInteractionControllerViewForPreview:(UIDocumentInteractionController
@brief 多媒体消息中包含的文件数据对象 * * @see UMShareObject */ @interface UMShareFileObject : UMShareObject /**...(不包含后缀) * @note 长度不超过64字节 */ @property (nonatomic, retain) NSString *fileName; @end II 原生API的文件预览及其他应用打开...UIDocumentInteractionController *documentController = [UIDocumentInteractionController interactionControllerWithURL...:@"文件下载失败"]; return ; } // //用单例类 NSFileManager的对象...文件下载失败"]; return nil; } // //用单例类 NSFileManager的对象
现在是21世纪20年代了,我们还是要学会新的IDE,也是在Android界一统天下的IDE——android studio。...笔者建议,如果你是Android的萌新,还是先去看我的《快速入门Android开发(入门篇)基于Android Studio》这篇文章,如果你已经学会了android studio的使用,想要了解基于eclipse...的Android是如何实现的,那么请阅读下篇的正文,谢谢!...点击 关闭 接着就是新建一个系统环境变量,变量名为JAVA_HOME,变量值为JDK的安装路径 其中变量环境的设置是在我的电脑/计算机——属性——高级系统设置——环境变量。...在系统变量中找到Path,将;%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin添加到变量值后面 最后先检测一下你的JDK是否配置成功: 按下WIN+R 输入 cmd 加回车
当前主流的Android开发环境 ①Eclipse + ADT + SDK (不再更新ADT) ②Android Studio + SDK ③IntelliJ IDEA + SDK 当前我们选用 Android...--module-path jmods --add-modules java.desktop --output jre 三、 Android SDK 安装 将解压包(根目录tools)放入一个新创建的目录下...:JDK根目录\sdk\platforms\sdk解压的tools包) 四、 Android studio 安装 1....当前Android studio安装根目录下的jre 包 2.JDK 根目录的 jre 包 image.png 五、新建一个空项目 1....选择项目语言,当前有Java、Kotlin语言(Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言),默认java 执行 Finish image.png image.png 配置成功的话
,因为我们有更好的解决办法 mWebView.loadUrl("javascript:changeColor()"); 在android 4.4 之后我们可以使用最新的办法...(因为我在后期测试中,不加也可以); 注意看 “javaInterface” ,这个其实是跟我们刚开始写 JAVA 调用JS 时addJavascriptInterface 时添加的一个暴露名称,ok,...ok,当你点击的时候,就执行了java代码中的方法, 你可以去自己试试。 ---- 最后,注意事项及要点: 大家可能要问, 如果在4.4之前的话,诸多事项怎么解决呢?...一、 Android 4.4 之前 JAVA 调用J S并取到返回值 目前的解决方案是通过java反射机制 在android.webkit包中有个BrowserFrame私有类,该类中有个Native...三、调试 Chrome 远程调试 如果你使用的是 Android 4.4 及其以上版本的 WebView ,那么这将是一个非常有用的功能,具体可以参考这个链接。 到此结束,再会。
Android init 启动 Android Linux Zygote启动 在之前的文章中我们已经分析到Zygote最后在Linux的init进程中是通过如下代码启动Java层的ZygoteInit。...\n"); proc->startThreadPool(); } 参数、类、方法构建与调用 在这一步主要通过FindClass()方法来获取对应Java的Class类型,构建对应的...最后在通过CallStaticVoidMethod()来调用ZygoteInit.main()方法,最终进入Java层的ZygoteInit。...从runtime.start()到调用Java层的ZygoteInit.main()的整个过程流程图如下: ?...= null) { caller.run(); } } 终于见到Java代码了,不容易啊~ 首先会创建zygoteServer,为Zygote设置自己的进程分组id;然后会解析传递过来的参数
❝设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。...而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。需要注意以下几点: (1)子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法。...(3)接口注入是指通过在接口中声明的业务方法来传入具体类的对象。 这些方法在定义时使用的是抽象类型,在运行时再传入具体类型的对象,由子类对象来覆盖父类对象。...因为继承会将基类的实现细节暴露给子类,由于基类的内部细节通常对子类来说是可见的,所以这种复用又称“白箱”复用,如果基类发生改变,那么子类的实现也不得不发生改变;从基类继承而来的实现是静态的,不可能在运行时发生改变...Java设计模式详解 Java设计模式之创建型模式 Java设计模式之结构型模式 Java设计模式之行为型模式 项目源码 项目源码地址:https://github.com/xuexiangjys/architect-java
最近研究了一些 Android 编译流程相关的东西。这里记录成文章分享给大家。今天先分享一下代码编译相关的细节。Android 的代码编译包括 Java 和 kotlin 代码编译。...本篇分析一下 Java 代码的编译流程。...编译流程 Android 应用的构建依赖于 Gradle 和 Android Gradle Plugin(AGP),而 Gradle 里面则包括了 Java Plugin: 在 AGP 里面相关的 task...实际上这里调用到了 javac 的编译。 增量编译 那么 Java 是怎么判断如何进行增量编译,哪些情况会触发全量编译呢?...总结 到这里 Java 编译的大致流程就分析的差不多了。
缺点:消息结构可读性不高,序列化后的字节序列为二进制序列不能简单的分析有效性;目前使用不广泛,只支持java,C++和Python; 使用: 1.首先要在adroid stdio工程根路径下,就是和settings.gradle...dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.google.protobuf...protobuf-java是用来处理java代码的,protoc是处理C或者C++代码的。 ?...'com.google.protobuf:protoc:3.1.0' 3.接着还需要在build.gradle的“android { }”中进行配置自动生成代码的sourceSets目录路径。...点击“Sync”同步按钮,同步整个工程,protobuf的java代码就会自动生成了,不过生成的是在app/src/genarated文件夹下。使用时 直接import引用过来即可。
Java中的类加载器主要有两种类型,系统类加载和自定义类加载器。...1.1 Bootstrap ClassLoader 用C/C++代码实现的加载器,用于加载Java虚拟机运行时所需要的系统类,如java.lang.*、java.uti....Java虚拟机的启动就是通过 Bootstrap ClassLoader创建一个初始类来完成的。...1.2 Extensions ClassLoader 用于加载 Java 的拓展类 ,拓展类的jar包一般会放在$JAVA_HOME/jre/lib/ext目录下,用来提供除了系统类之外的额外功能。...Java代码中获取它的引用。
android java xml转Json 添加依赖 Android: implementation 'org.json:json:20180130' Java: <dependency
Java语言没有提供释放已分配内存的显示操作方法。...48、简述synchronized 和java.util.concurrent.locks.Lock的异同?...序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆 53、Java中有几种类型的流? 答:字节流和字符流。...在java.io 包中还有许多其他的流, 主要是为了提高性能和使用方便。...关于Java的I/O需要注意的有两点:一是两种对称性(输入和输出的对称性,字节和字符的对称性); 二是两种设计模式(适配器模式和装潢模式)。另外Java中的流不同于C#的是它只有一个维度一个方向。
通过对这三个方面的跟踪分析,以Java 8的代表性特性——Lambda表达式为着眼点,将Android如何兼容Java8的过程分享给大家。...Android和Java关系 其实Java在Android的快速发展过程中扮演着非常重要的角色,无论是作为开发语言(Java)、开发Framework(Android-SDK引用了80%的JDK-API...不过可能是受到与Oracle的法律诉讼的影响,Google在Android上针对Java的升级一直都不是很积极: Android 从1.0 一直升级到4.4,迭代了将近19个Android版本,才在4.4...接下来,本文将从技术原理层面,来分析一下Android是如何支持Java 8的。...简单的来说,就是Android的dex编译器不支持invokedynamic指令,导致Android不能直接支持Java 8。
/gradlew 是,有时需要调用一些 JAVA 工具。在 OS X 上,这会伴随着 Java 图标在 Docker 上的显示,并且永远不会消失,影响你对项目的关注。 ?...为了永远隐藏 Java 图标(所有从 shell 中启动的 Java 程序),添加下面这行内容到你的 ~/.bashrc 或 ~/.zshrc : export JAVA_TOOL_OPTIONS="-...Dapple.awt.UIElement=true" 翻译自:Android Dev Tip: Hide that Annoying Java Icon
作为一个原生Android开发,一路走来经历了Java 、 Kotlin的洗礼;在“原生要凉”的氛围下学习Cordova、ReactNative、Weex、Flutter 等跨平台框架;之后又在“大前端...开发在这一方面有着先天的优势,Java 和良好的开放氛围给予了我们更多可能。...赶紧进入主题吧 一、背景 了解下有利于消化 这里快速说下 Java Web 开发的背景,作为Android开发,在学习后台开发上无疑用 Java 做敲门砖是成本较低的选择,Java Web 与 Android...二、框架选择 Spring Boot 全家桶快到碗里来 Java Web 的世界同 Android 一样存在各类框架,也许一些前辈们都建议不要从学习框架开始,但是我个人而言更习惯从实用性切入:选择一个主流框架学习...所以现阶段而言,个人认为 Spring、SpringMVC、SpringBoot 是 Android 开发者学习入门 Java Web 的不错选择。
Java与C++之间的Socket通信,对于小的数据量和控制命令,直接可以封装成json或xml格式,进行传输。但对于文件等大数据量传输,必须要将文件封装成帧,每一帧都设定固定大小的缓冲区,逐帧传输。...在此过程中要需解决如下问题: Java和C++数据基本类型不同,不仅所占字节数不同(如long型,java占8bytes,C++一般为4bytes)。...C++缓冲区一般使用char型,但是java中没有char型,相互之间传输的数据,如何接收解析? C++常用的特殊类型:结构体,如何解析成Java中的类。...即使是两者都具有的枚举类型,两者的机制是不一样的,如何进行对接? Java端和C++端,发送给socket的数据形式是什么?char数组型还是字节型C++端又有何种形式进行接收?...接收到的数据又如何正确解析出来? 字节序问题。Java为大字节序,而大部分PC主机C++都是小字节序,大小字节序和网络字节序相互之间的转化,也是需要考虑的问题。
Java提供了LinkedHashMap,可以用该类很方便的实现LRU算法,Java的LRULinkedHashMap就是直接继承了LinkedHashMap,进行了极少的改动后就可以实现LRU算法。...二、Java的LRU算法 Java的LRU算法的基础是LinkedHashMap,LinkedHashMap继承了HashMap,并且在HashMap的基础上进行了一定的改动,以实现LRU算法。...Java需要重写removeEldestEntry来判断是否删除节点;而Android需要重写LruCache的sizeOf,返回当前节点的大小,Android会根据这个大小判断是否超出了限制,进行调用...Java的removeEldestEntry方法,也可以达到同样的效果。Java需要使用者自己提供整个判断的过程,两者思路还是有些区别的。...首先需要说明的问题是,Android的LinkedHashMap和Java的LinkedHashMap在思路上一样,也是使用header保存双向链表。
大家都很熟悉,xml 在很多时候大大节省了我们开发的时间,但 xml 里面配置的样式只有默认的,在动态修改方面还是要靠 Java/Kotlin 代码优化。...基本上 xml 中可以配置的属性在 Java/Kotlin 代码中都有相对应的方法,然而和尚我在对应使用 CheckBox 控件的 android:buttonTint="@color/colorAccent...---- 和尚我的步骤如下: 设置两个默认的 CheckBox 选中/未选中 状态作为参照,如图中第一行; 设置两个 AppCompatCheckBox 默认通过设置 style.xml 主题色配置,可实现与.../Kotlin 代码与 style.xml 均设置样式,以 Java/Kotlin 代码样式为主。...android:paddingTop="12dp" android:text="AppCompatCheckBox Java 代码颜色配置" android:textColor
Java目前是世界用的最广泛的编程语言。在Android开发中,Java编程语言是开发Android应用程序的基础,你对Java越掌握,在开发Android中会越得心应手。...因此,在学习Android应用程序开发之前你必须掌握JavaSE(Java分为几个版本,其中JavaSE是最基础的版本),如果你有了JavaSE基础,不管是着手于Android应用程序的学习还是JavaWeb...Android最新的官方语言是Kotlin,也许你会问为什么不谈学习Kotlin,是因为Kotlin是基于Java的,我相信你掌握Java之后Kotlin也不在话下。...小编在学习Android入门的时候非常痛苦,自己学习的时候没有导师,没有前辈的指导。曾尝试了多种方法,走了很多弯路,以下是小编总结的个人经验,怎样学习Java基础,为学习Android打下基础。...最后给大家分享Mars老师的Java For Android免费视频资料,很棒的Java基础教程: 链接: https://pan.baidu.com/s/1hsviOS0 密码: h1dw
领取专属 10元无门槛券
手把手带您无忧上云