server.xml的Host节点
1 | <Context path="/demo" docBase="D:\SourceCode\MyEclipse\KevinServlet\WebRoot" reloadable="true" /> |
server.xml的Host节点
1 | <Context path="/demo" docBase="D:\SourceCode\MyEclipse\KevinServlet\WebRoot" reloadable="true" /> |
【Lottie】 是Airbnb开源的一个面向 iOS、Android、React Native 的动画库,能分析 Adobe After Effects 导出的动画,并且能让原生 App 像使用静态素材一样使用这些动画,完美实现动画效果。
android 项目地址:https://github.com/airbnb/lottie-android
1 | dependencies { |
本翻译文章原文链接
这篇文章最新的内容在 《向您的项目添加 C 和 C++ 代码》
注:官网上面的技术文章也在不断地汉化中,只是进度有点慢。在我翻译本篇文章的时候,官网没有对应的中文教程。经人提醒,该文章现在在官网已经有对应的中文版教程了,链接地址:向您的项目添加 C 和 C++代码。有需要的朋友可以直接阅读官方中文解说。
———–分割线————-
Android Studio 2.2 正式版发布后,看到更新内容中有提到对 C/C++ 支持的完善,表示非常高兴。然后将官网上这一部分内容翻译出来,如有错误,欢迎指正。
原文链接:Add C and C++ Code to Your Project
使用 Android studio,你可以将 C 和 C++ 代码编译成 native library(即 .so 文件),然后打包到你的 APK 中。你的 Java 代码可以通过 Java Native Interface(JNI)调用 native library 中的方法。
Android 上有很多优秀的第三方下载库,功能很强大,如断点续传,异步等。
为了快速下载一个小文件,有时候并不需要牛刀,利用Android自带的 java.net.HttpURLConnection
即可以完成下载,应用场景,比如小的缓存文件,用子线程同步下载即可。
步骤(经典的阻塞输入/输出流读写):
1 | import android.util.Log; |
GridLayoutManager 很少用,所以它的Decoration用法这里做一下备忘。
match_parent
采用自动适应的效果。1 | public class TestGridDecoration extends RecyclerView.ItemDecoration{ |
具体表现为:已经在libs目录添加了所有平台的so文件,但是运行是依然提示找不到so文件。
如:
1 | java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.ijkplayer-CyD2mFQ8g6fyehi-g_1ALQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.ijkplayer-CyD2mFQ8g6fyehi-g_1ALQ==/lib/arm64, /system/lib64, /vendor/lib64]]] couldn't find "libijkffmpeg.so" |
问题:
编译时,jniLibs默认的路径是 /app/src/main/jniLibs
,如果so文件放在 /app/libs
需指定目录。
Android 列表现在有两种选择:ListView
和RecyclerView
它是ListView
的扩展,作为一个自定义view;
拷贝以下的内容(https://developer.android.com/studio/build/shrink-code.html
),以防平时不能访问 ,有条件的可以访问原文,排版更好,看得舒服。
压缩代码和资源
要尽可能减小 APK 文件,您应该启用压缩来移除发布构建中未使用的代码和资源。此页面介绍如何执行该操作,以及如何指定要在构建时保留或舍弃的代码和资源。
代码压缩通过 ProGuard 提供,ProGuard 会检测和移除封装应用中未使用的类、字段、方法和属性,包括自带代码库中的未使用项(这使其成为以变通方式解决 64k 引用限制的有用工具)。ProGuard 还可优化字节码,移除未使用的代码指令,以及用短名称混淆其余的类、字段和方法。混淆过的代码可令您的 APK 难以被逆向工程,这在应用使用许可验证等安全敏感性功能时特别有用。
资源压缩通过适用于 Gradle 的 Android 插件提供,该插件会移除封装应用中未使用的资源,包括代码库中未使用的资源。它可与代码压缩发挥协同效应,使得在移除未使用的代码后,任何不再被引用的资源也能安全地移除。
本文介绍的功能依赖下列组件:
SDK Tools 25.0.10 或更高版本
适用于 Gradle 的 Android 插件 2.0.0 或更高版本
压缩代码
要通过 ProGuard 启用代码压缩,请在 build.gradle
文件内相应的构建类型中添加 minifyEnabled true
。
请注意,代码压缩会拖慢构建速度,因此您应该尽可能避免在调试构建中使用。不过,重要的是您一定要为用于测试的最终 APK 启用代码压缩,因为如果您不能充分地自定义要保留的代码,可能会引入错误。
例如,下面这段来自 build.gradle
文件的代码用于为发布构建启用代码压缩:
android { buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } …}
注:Android Studio 会在使用 Instant Run 时停用 ProGuard。如果您需要为增量式构建压缩代码,请尝试试用 Gradle 压缩器。
除了 minifyEnabled
属性外,还有用于定义 ProGuard 规则的 proguardFiles
属性:
getDefaultProguardFile(‘proguard-android.txt’)
方法可从 Android SDK tools/proguard/
文件夹获取默认的 ProGuard 设置。提示:要想做进一步的代码压缩,请尝试使用位于同一位置的 proguard-android-optimize.txt
文件。它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。
apktool是apk反编译的核心,其他GUI工具内部都是用apktool来执行反编译任务。
主页地址: https://ibotpeaches.github.io/Apktool/install/
下载apktool.jar: https://bitbucket.org/iBotPeaches/apktool/downloads/
下载apktool.bat:https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat
apktool.bat内容如下:
1 | @echo off |
由于不太想用Eclipse的库,寻求其他库来试试。
org.fusesource.mqtt-client 也是MQTT推荐 client 端的库,github的start也有500+
吧,fork也有200+
。
引用库
1 | compile 'org.fusesource.mqtt-client:mqtt-client:1.12' |
作者给出了三种使用方法:1.阻塞;2.非阻塞(推荐);3.Future(没理解?)
Android机子刷机,遇到个频率(几秒一次)弹广告的内置流氓软件,作为service运行,可以进程保活,也就是强行关闭进程,它可以重新启动,非常恶心,时不时就来一个全屏广告,自动下载其他的apk安装包,自动安装。电脑管家是识别为木马的。
看了一下他的 AndroidManifest.xml
1 | <?xml version="1.0" encoding="utf-8" standalone="no"?> |
http://square.github.io/retrofit/
1 | compile 'com.squareup.retrofit2:retrofit:2.0.0' |
1 | <uses-permission android:name="android.permission.INTERNET" /> |
1 | /api/v1/user/login/{name}/{passwd} |
1 | curl -X GET --header 'Accept: application/json' 'http://192.168.1.219/api/v1/user/login/sam/123' |
写一个API接口
1 | import java.io.BufferedReader; |
Apache Maven 入门篇 ( 上 )
本文着重动手,用 maven 来构建运行 hellow world 程序,体会一下不用任何 IDE ,只用 maven 是咋回事。
Apache Maven 入门篇(下)
* POM (Project Object Model)
* Maven 插件
* Maven 生命周期
* Maven 依赖管理
* Maven 库
我的 Maven Setting.xml 的mirrors配置
1 | <mirrors> |