Android
文章平均质量分 62
mandagod
这个作者很懒,什么都没留下…
展开
-
[最靠谱的解决方法]解决AndroidStudio下载gradle慢的问题
当我们升级完成AS后,相应的gradle也会需要升级,使用新版本的AS打开项目时,项目下的gradle/wrapper/gradle-wrapper.properties文件里面的gradle版本会更新成当前AS所匹配的gradle版本。此时AS就一直在刷新项目,其实是在进行蜗牛般的速度下载着gradle。以我现在的AS为例,我把AS升级到2.3后,相应的gradle版本是gradle-2.14.1,可以通过查看文件gradle-wrapper.properties得知你所需的gradle版本。1.原创 2021-03-17 16:34:30 · 1813 阅读 · 0 评论 -
Gradle: Download 下载慢的解决办法
Gradle: Download 下载慢的解决办法 应该是gradle被墙了,在网上查得:使用阿里云的国内镜像仓库地址,就可以快速的下载需要的文件: 修改项目根目录下的文件 build.gradle :buildscript { repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} }}allprojects { repositorie原创 2021-03-17 15:10:40 · 3319 阅读 · 0 评论 -
ndk samples
https://github.com/googlesamples/android-ndkAndroid NDK samples with Android Studiohttp://developer.android.com/ndk记录一下;1. 最简单的入门 Hello:https://codelabs.developers.google.com/codelabs/android...转载 2019-04-02 17:03:49 · 437 阅读 · 0 评论 -
Android NDK 支持的 Neural Networks API
官网地址:https://developer.android.com/ndk/guides/neuralnetworksAndroid Neural Networks API (NNAPI) 是一个 Android C API,专门为在移动设备上对机器学习运行计算密集型运算而设计。 NNAPI 旨在为构建和训练神经网络的更高级机器学习框架(例如TensorFlow Lite、Caffe2 或...转载 2019-03-13 10:10:15 · 499 阅读 · 0 评论 -
Android APK 分析工具
官网介绍:https://developer.android.com/studio/build/apk-analyzer.html如果您想要验证 Gradle 是否已将原生库打包到 APK 中,可以使用APK 分析器:选择Build > Analyze APK。 从app/build/outputs/apk/目录中选择 APK 并点击OK。 如图 3 中所示,您会在...转载 2019-03-04 17:21:05 · 1426 阅读 · 0 评论 -
ndk 编译 boost 库,支持serialization
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)...转载 2019-03-14 09:50:17 · 458 阅读 · 0 评论 -
Android中的ABI
Android中的ABI ABI是Application Binary Interface的缩写。 ABI常表示两个程序模块之间的接口,且其中一个模块常为机器码级别的library或操作系统。 ABI定义了函数库的调用、应用的二进制文件(尤其是.so)如何运行在相应的系统平台上等细节。 Android目前支持以下七种ABI:armeabi、armeabi-v7a...转载 2019-03-06 17:33:39 · 823 阅读 · 0 评论 -
px、dp和sp,这些单位有什么区别?
DP这个是最常用但也最难理解的尺寸单位。它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度。假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密度的单位dpi是Dots Pe...转载 2019-02-09 17:07:50 · 764 阅读 · 0 评论 -
解决adbd cannot run as root in production builds问题
1,验证你的手机是否已经root了adb shellsu行命令后,$ 变为 # 即 表示root 成功2,安装adbd-insecure.apkadb install adbd-insecure.apk3,设置打开应用将Enable insecure adbd 和 enable at boot 勾选上,设置好之后重进键入:adb root即可下载地址:adbd-in...转载 2019-01-11 16:17:32 · 23711 阅读 · 3 评论 -
Android源代码清华镜像
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ http://mirrors.ustc.edu.cn原创 2019-01-10 17:02:48 · 1850 阅读 · 0 评论 -
Android开发AVD增加配置
https://www.phonearena.com/如果Android Studio里没有的机型,可以先到此网站查找技术规格,之后创建AVD就可以了。 genymotion.com非常优秀的第三方模拟器。 ...原创 2018-12-05 15:12:08 · 704 阅读 · 1 评论 -
Android混淆
代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。为什么要加代码混淆--------------------不想开源应用,为了加大反编译的成本,但是并不能彻底防止反编译开启混淆 通常我们需要找到项目路径下app目录下的build.gradle文件 找到minifyEnabled这个配置...转载 2018-12-04 17:43:04 · 140 阅读 · 0 评论 -
Android性能优化典范 - 第4季
Android性能优化典范 - 第4季DEC 31ST, 2015 | COMMENTSAndroid性能优化典范第4季的课程学习笔记终于在2015年的最后一天完成了,文章共17个段落,包含的内容大致有:优化网络请求的行为,优化安装包的资源文件,优化数据传输的效率,性能优化的几大基础原理等等。因为学习认知水平有限,肯定存在不少理解偏差甚至错误的地方,请多多交流指正!1)Cach...转载 2018-11-01 10:35:36 · 201 阅读 · 0 评论 -
Ne10库编译使用
介绍Ne10是一个单独的开源库,可以把它直接嵌入到工程里面去(目前支持linux,android,ios),直接调用里面的函数。Ne10已实现一些接口,可分为4个模块:dsp、math、imgproc、physics。比如dsp中目前就已封装了fft,fir,irr算法函数接口,用户直接调用这些接口函数就可以实现相应算法。 math 数学模块:主要包含矢量/矩阵数学运算。 dsp 数字信号...转载 2018-09-05 10:38:14 · 1497 阅读 · 2 评论 -
Google Java编程风格指南
Google Java编程风格指南January 20, 2014作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。 目录前言 源文件基础 源文件...转载 2018-09-11 11:48:54 · 138 阅读 · 0 评论 -
为4个平台编译Boost
为4个平台编译Boost公司的项目至今仍在使用Boost 1.56.0版本,最近发现Boost.uuid在Windows上居然会一直尝试去访问/dev/urandom,进而转移到系统盘根目录urandom文件,然后客户认为这会有安全隐患,需要修正。我随手看了一下Boost.uuid在1.56.0和1.64.0上的源代码,貌似确实1.56.0版并没有分系统实现,在1.64.0上为Windows系...转载 2019-03-25 09:37:07 · 429 阅读 · 0 评论 -
curl-android-ios 编译
https://github.com/gcesarmza/curl-android-ios转载 2019-03-25 17:42:10 · 402 阅读 · 0 评论 -
Android NDK: How to Reduce Binaries Size – The Algolia Blog
When we started Algolia Development for Android, binary size optimization was not one of our mainconcerns.In fact we even started to develop in JAVA before switching to C/C++ forreasons of performa...转载 2019-08-01 21:09:51 · 252 阅读 · 0 评论 -
如何压缩ndk的so库
压缩so的有效手段:不要启用 Exceptions 和 RTTI 不要使用 iostream 使用 -fvisibility=hidden 使用 gc-sections 丢弃未使用的函数 使用 –icf=safe 移除重复代码 修改交叉编译工具链的默认标记位 限制编译的ABI详情下面参考链接。参考文档: Android NDK: How to Reduce Binaries ...转载 2019-08-01 18:27:54 · 591 阅读 · 0 评论 -
教你如何使用android studio发布release 版本(完整版)
https://blog.csdn.net/to_perfect/article/details/69048419转载 2019-06-11 17:17:45 · 356 阅读 · 0 评论 -
Manifest merger failed with multiple errors, see logs问题处理
摘要:在android开发的时候,有时候会遇到这样的问题Error:Executionfailedfortask':test:processDebugManifest'.>Manifestmergerfailedwithmultipleerrors,seelogs但是要命的是,除了这个log,没有什么其他的有用信息了,怎么办?处理方式是这样的:首先进入命令行,输入命令gradlewproce...转载 2019-05-30 18:34:22 · 426 阅读 · 0 评论 -
避免最常见的 10 大 JNI 编程错误的技巧和工具
原链接:http://www.ibm.com/developerworks/cn/java/j-jni/ 使用 Java Native Interface 的最佳实践避免最常见的 10 大 JNI 编程错误的技巧和工具Java™ 本机接口(Java Native Interface,JNI)是一个标准的 Java API,它支持将 Java 代码与使用其他编程语言编写的代码相集...转载 2019-05-20 11:41:32 · 171 阅读 · 0 评论 -
JNI调用执行边长参数的方法
void callJavaMethod(const char* method_name, const char* arg_format, ...) { JNIEnv* env = m_env; va_list args; jmethodID method = env->GetMethodID(m_clazz, method_name,...转载 2019-05-20 10:36:12 · 193 阅读 · 0 评论 -
Android JNI 篇 - JNI回调的三种方法(精华篇)
开门见山, 不废话上效果, 上代码: c层回调进度device-2017-03-23-184023.gif第一种方法在当前函数(同一个线程)里面回调,直接用findClass或者GetObjectClass,进行回调(国内各大博客介绍的普遍方法):java 层代码:/** * Created by jiong103 on 2017/3/23. */public c...转载 2019-05-14 19:24:30 · 1965 阅读 · 0 评论 -
JNI开发总结
Android Ndk开发常用网站收集,真正的高手并不是掌握所有的API而是需要的时候可以快速的找到要使用的API。基础知识请移步:http://blog.csdn.net/xyang81/article/details/41777471JNI动态加载: http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092491.htmlJ...转载 2019-04-29 09:53:58 · 199 阅读 · 0 评论 -
TensorFlow Lite学习笔记
TensorFlow Lite学习笔记Tensorflow LIte Demohttps://github.com/Robinatp/Tensorflow_Lite_Demo模型固化freeze_graph和模型优化optimize_for_inference移动设备有很大的局限性,因此可以进行任何可以减少应用程序占用空间的预处理值得考虑。TensorFlow库的一种方式是保持...转载 2019-04-24 12:02:22 · 952 阅读 · 0 评论 -
Android JNI之C/C++层调用JAVA
从C/C++层调用JAVA层代码步骤:1. 在JAVA类中创建java方法和本地方法public class TestNdk{ int a;//本示例中将被修改的JAVA变量 Handler handler; public TestNdk(Handler handler){ this.handler = handler; set...转载 2019-04-24 08:53:58 · 1003 阅读 · 0 评论 -
Android C++向java传递不定长且不同类型的参数
1、c/c++和java之间的通信经常通过jni来实时传递参数,但是由于参数不固定或者参数类型很多需要一个合适的方法来传递。2、这里有个实例,记录以备用,头文件/* * jni_tbox_observer.h * */ #ifndef JNI_TBOX_OBSERVER_H_#define JNI_TBOX_OBSERVER_H_ #include <map>...转载 2019-04-26 09:31:30 · 226 阅读 · 0 评论 -
在Android Studio添加本地aar包引用
1.如何在Android Studio添加本地aar包引用https://jingyan.baidu.com/article/2a13832890d08f074a134ff0.html2.完成上述步骤之后,99% 的可能项目已经没有任何问题了。但是最近出现了很奇怪的问题:上述步骤之后代码中依然无法导入第三方的包、类(代码报红色错误:cannot resolve... ),但是相应的代...转载 2019-04-09 19:19:05 · 311 阅读 · 0 评论 -
NDK 链接第三方静态库的方法
将NDK编译的第三方静态拷贝到JNI目录下,在Android.mk中添加如下代码以openssl静态库(libcrypto-static.a)为例第一种链接方法:LOCAL_LDFLAGS := libcrypto-static.a第二种链接方法:LOCAL_LDLIBS := libcrypto-static.a第三种链接方法:include $(CLEAR_VARS)LOCAL_MODULE ...转载 2018-03-26 16:15:25 · 731 阅读 · 0 评论 -
android NDK 使用(多个)静态库生成动态库
android NDK 使用(多个)静态库生成动态库。1、编写Android.mk文件:如下两种方式都可以,用于NDK编译工具生成的两个.a文件来生成最终的libtwolib-second.so动态库。LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_MODULE:=libtwolib-secondLOCAL_SRC_FILES:=second....转载 2018-03-26 16:14:41 · 2001 阅读 · 0 评论 -
Android NDK编译Openssl-1.1.0f静态库
0 前言按照源代码C:\openssl-1.1.0f下的INSTALL文件中的编译指导,在Windows中用Cygwin模拟Linux环境顺利编译出libcrypt.a和libssl.a,然而在Android NDK项目中编译报错不通过,报错无法解析的符号,检查.a静态库链接是正确的,所以推测用Cygwin编译出的.a库在windows下的android ndk下不能用。具体原因不清楚。所以,另想...转载 2018-03-22 16:12:01 · 570 阅读 · 0 评论 -
Android 如何使用GPU硬件加速
1.名词解释GPU:Graphic Processing Unit (图形处理器)OpenGL:Open Graphic Library 定义了一个跨编程语言、跨平台的编程接口的规格,不同厂商会有不同的实现方法,它主要用于三维图象(二维的亦可)绘制。SurfaceFlinger:Android中负责Surface之间叠加、混合操作的动态库Skia:Android中的转载 2015-09-14 10:37:05 · 6068 阅读 · 0 评论 -
Graphics architecture
Graphic Architecture本篇文章是基于谷歌有关Graphic的一篇概览文章的翻译:http://source.android.com/devices/graphics/architecture.html大量文字以及术语的理解基于自身的理解,可能并不准确。文中有部分英文原文我也不能准确理解,对于这种语句,我在翻译的语句后加了(?)符号。This doc转载 2015-09-14 11:08:45 · 1393 阅读 · 0 评论 -
【Android多媒体】NuPlayer for HTTP Live Streaming【5】
4. start(1) mediaplayer.cppstatus_t MediaPlayer::start(){ ALOGV("start"); status_t ret = NO_ERROR; Mutex::Autolock _l(mLock); mLockThreadId = getThreadId(); if (mCurrentState & MEDIA_原创 2015-08-04 19:17:33 · 1933 阅读 · 1 评论 -
【Android多媒体】NuPlayer for HTTP Live Streaming【2】
不管是本地播放多媒体,还是流媒体播放,在上层的实现方法都是一样的,总体来说就下面的这些流程。MediaPlayer mMediaPlayer = new MediaPlayer( ); //创建mediaplayer mMediaPlayer.setDataSource(mContext, mUri); // setDataSoutcemMediaPlayer.setDisplay(mSurf原创 2015-08-02 21:01:34 · 4739 阅读 · 0 评论 -
【Android多媒体】NuPlayer for HTTP Live Streaming【4】
3. Prepare(1) mediaplayer.cpp// must call with lock heldstatus_t MediaPlayer::prepareAsync_l(){ if ( (mPlayer != 0) && ( mCurrentState & ( MEDIA_PLAYER_INITIALIZED | MEDIA_PLAYER_STOPPED) )原创 2015-08-03 23:22:30 · 1857 阅读 · 0 评论 -
【Android多媒体】NuPlayer for HTTP Live Streaming【3】
2. setVideoSurfaceTexturedisplay设置这里用了SurfaceTexture,可以说替换了以前的SurfaceView。SurfaceTexture比SurfaceView更优化和强大,主要是体现在现实窗口的绘画和控制方面,这方面以后再详细研究。 mediaplayer.cppstatus_t MediaPlayer::setVideoSurfaceTexture(原创 2015-08-03 17:27:39 · 2190 阅读 · 0 评论 -
【Android多媒体】Android5.0 NuPlayer多媒体框架【1】
Android流媒体框架在Gingerbread Android2.3版本的时候加入的,其中实现的核心就是NuPlayer。在之前的版本中一般认为Local Playback就用Stagefrightplayer+Awesomeplayer,流媒体用NuPlayer。从现在来看,NuPlayer大有替换掉StagefrightPlayer+AwesomePlayer的趋势,现在NuPlayer也可以原创 2015-08-02 14:58:34 · 13415 阅读 · 1 评论 -
【Android多媒体】多媒体架构-Android官网
MediaAndroid provides a media playback engine at the native level called Stagefright that comes built-in with software-based codecs for several popular media formats. Stagefright features for audio and转载 2015-08-01 21:40:46 · 2618 阅读 · 0 评论