android 9.0 Android.mk 引用.so文件

编写Android.mk / Android.bp 引用三方 jar 包,aar包,so 库 在Android10之后,所有项目工程中,官方推荐使用Android.bp去编译构建,以前使用Android.mk构建的项目随着版本迭代升级,慢慢需要变更为Android.bp, 两者的语法都需要去了解并熟练使用。笔者之前写过Android.mk的语句介绍,里面有介绍每句代码的含义编写Android.mk把Android studio项目编译到AOSP源码中后来也总结过 Android.bp基本用法:Android.bp 语法和使用比较基础,也是在项目中运用到了就记录下来。 阅读详情

做下笔记:

LOCAL_PATH:=$(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE:=DemoAPP
LOCAL_MODULE_TAGS:=optional
LOCAL_MODULE_CLASS:=APPS
#LOCAL_PRIVILEGED_MODULE := true
LOCAL_SRC_FILES:=DemoAPP.apk
LOCAL_MODULE_SUFFIX:=$(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PREBUILT_JNI_LIBS := \
    lib/arm64-v8a/libdemo.so
    
LOCAL_CERTIFICATE := platform
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
include $(BUILD_PREBUILT)

 

说明:要手动把libdemo.so拿出来的,编译之后此.so会生成在下面的目录:

out/target/......./system/app/DemoAPP/lib/arm64/libdemo.so

android9系统android studio项目改成用android.mk编译引用v7包第三方jar包,aar文件和so库文件 android9系统android studio项目改成用android.mk编译引用v7包第三方jar包,aar文件和so库文件 原文件在:\vendor\..\package\DVR 打包apk在:\out\target\product\msm8953_64\system\app\DVR 项目放进系统中编译前提是APP 本身已能正常在对应系统中使用了,只是现在需要用mmm编译到系统包中 先用android studioMake project成功后,Clean Project项目,清.. 阅读详情

相关推荐

NDK编译脚本:Android.mk or CMakeLists.txt

Android NDK以前默认使用Android.mk与Application.mk进行构建,但是在Android Studio2.2之后推荐使用CMake进行编译。Cmake是跨平台编译工具,全称为cross platform make,内建c、c++、java自动相依性分析功能,关于Cmake更多详情请参考官网:https://cmake.org/documentation/。下面我们对比下Android.mk与CmakeLists.txt的语法。 一、Android.mk语法 以动态库编译hell

徐福记456 3万+

[ROM]预制三方apk 自动提取so

android 集成三方带so的apk到system/app或者system/priv-app目录时,要把so提取出来才能正常运行。 网上找的mk脚本都是要手动把apk的so解压出来。 这样会导致预制三方apk的时候特别麻烦,常常忘记解压新版本的so,可能导致隐藏的坑。因此自己写了一个自动提取so的mk模板。 集成时,只需要把apk和mk放入同一目录即可。 这里有个副作用,就是会在当前目录产生一个lib目录。 新增一个.gitignore文件,防止git跟踪自动提取出来的lib目录。 mk文件内容: LOC

lookfuyao的专栏 1639

android9.0-ndk开发(2)-JNI代码

文章目录一、创建java 接口代码二、自动生成JNI头文件三、第三方库导入四、JNI代码实现4.1 代码实现:4.2 创建 Android.mk 和 Application.mk五、编译 注1:android9.0-ndk开发系列文档提供一个ndk编译JNI库,并访问第三方库,APP 直接通过jar接口调用的方法。 注2:本文为个人学习记录,可能存在个别或多处错误,欢迎指正和讨论。 一、创建ja...

重拾程序之路 1163

Andorid.mk包含第三方so库方法

Android.mk#jni/Android.mk LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := android-ffmpeg LOCAL_SRC_FILES :=c ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg.so LOCAL_EXPORT_C_INCLUDES := f...

HTJOY1202的专栏 5354

Android系统预装带so的apk

需求是预装带so的apk当作系统app,自己的app成了预装软件,是不是想起当年新买的手机被厂商支配的那段日子,如今转变下身份,预装自己的app到手机当中 ,还不能卸载!心中不免有些暗爽。

Android小码家 2252

合成孔径雷达Chirp Scaling(CS)算法MATLAB仿真实现

本人也是初学《合成孔径雷达成像算法与实现》,在GitHub上下载的关于CS算法的代码,仔细读了读,发现中间有一些不合理之处,动手改了一改,重新写了一个代码供初学者学习,有什么问题留言即可。 非常感谢源代码的作者,虽然中间有少许不正确的地方,但是对我理解cs算法的帮助非常大,非常感谢!!! 代码中提到的(4.31)这种均是在《合成孔径雷达成像算法与实现》中的公式 以下是MATLAB的仿真程序,直接复...

weixin_41700188的博客 7852

Android.mk 文件 添加 .so 和 .jar 文件

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_PACKAGE_NAME := TestApp LOCAL_MODULE_TAGS := tests LOCAL_JAVA_LIBRARIES := telephony-common LOCAL_STATIC_JAVA_LIBRARIES := \

zhbpd的专栏 5338

STM32 Proteu直流电机正反转控制系统限位开关-0035

硬件组成:STM32F103C6单片机 +L298N电机控制电路+直流电机+3个按键(正转、反转、停止)+LED指示灯(正转、反转、停止)+限位开关(正限位 反限位) 1.通过3个按键(正转、反转、停止)控制电机的正转、反转、停止。 2.有3个LED指示灯,正转时正转指示灯亮。反转停止对应反转停止指示灯亮。 3.有自动正转反转停止功能,正转时当正限位按键按下时说明正转到最大距离。此时自动停止。反转一样。

zhaxiaobian_er的博客 2002

Android.mk用法详解

一、Android.mk介绍 Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。 它的基本格式如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) ......

红娃子 5366

STM32G474多通道ADC电压采集:软件触发与单次转换实战

本文详细介绍了STM32G474多通道ADC电压采集的实战方法,重点讲解了软件触发与单次转换的实现技巧。通过硬件设计、HAL库配置、多通道轮询采集及数据处理等环节的详细解析,帮助开发者高效完成精确电压采集任务。文章还提供了常见问题调试技巧和性能优化建议,适用于需要高精度电压监测的嵌入式应用场景。

weixin_28720767的博客 463

邮件伪造和SPF

之前看了下邮件伪造觉得挺有意思的,所以看了下邮件伪造的东西,下面简单的总结了一下,如果有不妥的地方还望大佬们提出来。 1. 什么是SPF SPF是 Sender Policy Framework 的缩写,一种以IP地址认证电子邮件发件人身份的技术,是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录。 接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SP...

SunJ3t的菠萝屋 2448

Android开发之so文件使用方法详解

一、前言 之前自己写了个扒谱助手apk,想把录音得到的pcm转成mp3,百度发现需要使用so文件实现,然后在踩了一堆坑后,终于实现了pcm转mp3的方法。 包含如何生成so文件、如何使用so文件两个主要内容。 现在记录如下。 二、流程 1.目标是android实现pcm转mp3,首先从这个网址找到了大概的方法: https://blog.csdn.net/u013487404/article/details/86520541 2.从网上下载了lame-3.100.tar.gz,直接解压就行; 三、总结 .

BHSZZY的博客 5052

晟矽微MC32F7361定时器的使用案例说明

110所以TIMER0所用的频率是FCPU的1/64,也就是8/64MHZ. 为1/8MHZ。//io口下拉电阻 1:enable 0:disablea。//io口上拉电阻 1:enable 0:disable。//io口下拉电阻 1:enable 0:disable。//io口上拉电阻 1:enable 0:disable。//io口下拉电阻 1:enable 0:disable。//io口上拉电阻 1:enable 0:disable。

liyanfei123456的博客 1129

深度解析Android.mk文件:从原理到实战

这是一个Android NDK构建配置文件(Android.mk),用于编译生成名为libmynative.so的动态库。文件定义了编译参数、源文件(mynative.cpp和helper.c)、头文件路径(inc和third/inc目录)以及链接的系统库(log和android)。编译选项指定了C99和C++17标准,并添加了调试信息(-g)。最后通过BUILD_SHARED_LIBRARY指令生成共享库。整个流程包括路径设置、变量清除、模块定义、编译参数配置、依赖库链接和最终构建。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 893

利用Dify平台打造大学生专属AI模拟面试助手:从零到精通的完整指南

在这个充满竞争的就业市场中,拥有一个24小时在线的AI面试教练无疑是大学生求职路上的秘密武器。通过本文的指导,你已经掌握了使用Dify平台构建专业级模拟面试助手的全套技能。从环境部署、模型选择,到Prompt设计、知识库集成,再到高级功能开发和效果优化,我们一步步打造了一个能够适应不同岗位、提供专业反馈的智能面试系统。无论是技术岗的算法问答,还是咨询业的案例分析,或是外企的英语面试,你的定制助手都能提供针对性训练。更重要的是,这个方案具有极强的可扩展性。

专注于编程、AI、人工智能等多个领域内容研究和分析 2790

公文流转系统

公文录入区 | QLineEdit(文号/标题)、QComboBox(公文类型/紧急程度)、QTextEdit(正文)、QListWidget(附件列表)、QPushButton(上传附件/保存草稿/提交审批) |// 按时间范围获取。QStringList userNames = {"张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"};

寒寒豆豆软件公司的博客 550

Android P系统编译Android.mk导入jar包和aar包

安卓开发中,有时候需要在系统环境下开发apk,导入第三方jar包或者so库。 导入aar包: 1、在模块根目录下新建文件夹libs,将需要aar包拷贝进libs. 2、在Android.mk文件加入: LOCAL_STATIC_JAVA_AAR_LIBRARIES := demo 3、在include $(BUILD_PACKAGE)后面加入: include $(CLEAR_VARS) LOCA...

Sunxiaolin2016的博客 4185

面向业务角色的 SAP Fiori Space 与 Page 创建全流程实战指南

业务角色导航设计:从Space与Page规划到实施 摘要:本文探讨了SAP S/4HANA Cloud和BTP ABAP环境中基于业务角色的导航设计方法。传统Fiori Launchpad的Group+Tile模式存在应用堆积问题,而新的Space与Page模型将导航按工作领域(如应付会计、销售代表)组织,每个Space包含多个任务导向的Page。文章详细介绍了从业务角色建模到Space/Page创建、分配的完整流程,包括核心概念解析、规划思路和具体操作步骤。重点阐述了如何根据业务需求选择创建方式(基于预交

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 183

浅谈Android系统编译apk后so文件在dlopen时出现linker权限问题

文章目录浅谈Android系统编译apk后so文件在dlopen时出现linker权限问题一、概述二、问题描述三、具体分析四、解决方案五、总结参考 浅谈Android系统编译apk后so文件在dlopen时出现linker权限问题 @auther Jimmy @date 2018.08 一、概述 由于技术能力有限,本文的部分观点可能描述的并非准确,欢迎指正 在早期Android系统源码编译...

Jimmy's Blog 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android.mk总结

Android源码编译不同的版本,略微有不同 4.4 采用圝的方式 9.0使用圝的方式 编写app之前,确认编译环境使用的sdk版本,在build.gradle中配置成一样的 删掉不需要用的东西,也许某个虚线下面在编译时就是一个炸弹 一个apk构依赖部分 系统属性/自己项目的module/第三方jar/第三方aar/so库 系统预编译好的属性 如AndroidX系列, implementation 'androidx.constraintlayout:constraintlayout:1.1.

Android 系统开发 1917

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 系统签名so报错,MTK平台 Android9 预置apk找不到so

背景我们有一款自定义的launcher app,用Androidstudio直接run是可以正常运行的,在预编译到system/priv-app目录下时,始终找不到so文件。1、最简单的方法,将so预置到system/lib64下,仍然提示找不到so2、在app的目录下手动创建lib连接指向system/lib64中的so,这样so可以找到,但是会有其他一些错误,但是明明在AS中直接run是可以正...

weixin_29597551的博客 1019

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android.mk 编译aar,Android编译mk文件引入三方jar、aar、so

引入aar:LOCAL_STATIC_JAVA_AAR_LIBRARIES := okayrom-lib-http-1.1.0.9 \引入jar:#当前模块依赖的 Java 静态库 为引用jar库的别名,可以随便取名,一般就是用库名称就可以了。LOCAL_STATIC_JAVA_LIBRARIES := haha \#########################################...

weixin_39940957的博客 739

Android.mk和Android.bp的区别和转换详解

简单的说:Android.mk和Android.bp都是用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a等等作用。Android.mk就是一个GNU make语法的脚本文件。Android.bp文件是Android 7.0及更高版本中引入的一种构建脚本文件,是使用Starlark语法编写的,它是一种基于Python的轻量级脚本语言。他们的关系如下:ninja是一个编译框架,系统会根据相应的ninja格式的配置文件进行编译。

wenzhi的博客 5612

Unity C#调用so文件

1.so源文件 1.1 NaviteCode.h #ifndef __NativeCode_H__ #define __NativeCode_H__ #if 0 #define EXPORT_DLL __declspec(dllexport) //导出dll声明 #else #define EXPORT_DLL #endif extern "C" { EXPORT_DLL int MyAddFunc(int _a, int _b); EXPORT_DLL char* GetPkey();

u012338130的专栏 3828

详解android.mk中引用第三方库的方法

一、集成第三方jar包:1.在项目目录下创建目录libs(不创建也行,一会儿指向对应路径就好),将第三方的jar包放进去。2.在Android.mk文件中进行配置:登录后复制 include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := smartphoto...

weixin_40540695的博客 319
上一篇: Android studio快捷键大全 和 eclipse对照(转)
下一篇: android android:persistent service 空闲被回收
EmMouse
博客等级 码龄18年 11粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值