有没有办法让Android应用程序在运行时下载和使用Java库?
这是一个例子:
想象一下,应用程序需要根据输入值进行一些计算.应用程序请求输入这些值,然后检查所需的Classes或Methods是否可用.
如果没有,它将连接到服务器,下载所需的库,并在运行时加载它以使用反射技术调用所需的方法.实施可能会根据各种标准(例如下载库的用户)而发生变化.
我想了解std::reference_wrapper.
以下代码显示引用包装器的行为与引用完全不同.
#include <iostream>
#include <vector>
#include <functional>
int main()
{
std::vector<int> numbers = {1, 3, 0, -8, 5, 3, 1};
auto referenceWrapper = std::ref(numbers);
std::vector<int>& reference = numbers;
std::cout << reference[3] << std::endl;
std::cout << referenceWrapper.get()[3] << std::endl;
// I need to use get ^
// otherwise does not compile.
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,隐式转换不适用于调用成员函数.这是一个固有的限制吗?我需要std::reference_wrapper::get经常使用吗?
另一个案例是这样的:
#include <iostream>
#include <functional>
int main()
{
int a = 3;
int b = 4;
auto refa = std::ref(a);
auto …Run Code Online (Sandbox Code Playgroud) 我一直在玩Android并尝试移植Java应用程序.以下是关于我遇到的问题的一些问题,并希望得到一些指导.
这是一个相当大的问题(多个问题).但是,我不是盲目地问他们,因为我已经研究了我能做些什么,并试图让我理解使用它.我花时间提出问题,希望他们对我想要实现的目标有一半的了解.
我将提供一半的代表作为赏金,因为我希望得到彻底的答案和帮助,希望它足以吸引一些人帮助.
提前,谢谢你的时间和帮助!(期待阅读回复).
TextLayout && Font && Graphics2D
有问题的是以下类和方法:
TextLayoutTextLayout.getAdvance()TextLayout.getAscent()TextLayout.draw()Graphics2D.getFontRenderContext()我不太确定TextLayoutAndroid中的等价物.我曾经读过有些人会TextView使用它,但我不确定是否会这样做
为以下工作.我会提供一些我想做的事情的来源,或许可以帮助我.
Java来源:
private Font myStringFont = new Font("Helvetica", Font.BOLD, 12);
private String myString = "My Test String";
private int midX = getWidth() / 2;
private int midY = getHeight() / 2;
Graphics2D g2 = new Graphics2d();
TextLayout layout = new TextLayout(myString, font, g2.getFontRenderContext());
g2.drawString(myString, midX - ((int)layout.getAdvance() /2), midY);
Run Code Online (Sandbox Code Playgroud)
Android复制尝试:
Canvas canvas;
Paint paint;
private String myString = "My Test …Run Code Online (Sandbox Code Playgroud) 很久以前,Google代码票据被打开,因为Gradle插件不会传播,无论您是对依赖的android库进行调试构建还是发布构建:
描述:
无论您是对依赖的android库进行调试构建还是发布构建,Gradle插件都不会传播.版本信息:
gradle插件:0.3 gradle:1.4
这是一个问题,特别是当release库的配置阻止代码版本或调试过程正常发生时(本机方法的红色突出显示,因为IDE在正常链接时不再发现,Java逐步断开)一步调试......).
这在Google Code和Stack Overflow上进行了彻底的讨论,而Kane O'Riley提出了一个非常有趣(干净)的解决方法:
把它放在你的应用程序中:
dependencies { debugCompile project(path: ':custom_lib', configuration: "libraryDebug") releaseCompile project(path: ':custom_lib', configuration: "libraryRelease") }
并在你的库的build.gradle中添加:defaultPublishConfig 'release' publishNonDefault true productFlavors { library { } }
我试了一下,但是我在Gradle同步时有以下消息:
Error:Configuration with name 'libraryDebug' not found.
Run Code Online (Sandbox Code Playgroud)
我尝试使用" debug"和" release"(这是我在lib中使用的构建配置名称),但结果是一样的.
有什么想让这个有趣的解决方案有效吗?(我正在运行Android Studio 2.0 beta 2)
附录:
我的lib build.gradle文件(包括我目前正在使用的丑陋的解决方法):
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
// THIS IS WHERE I …Run Code Online (Sandbox Code Playgroud)我刚刚发布了一个应用程序,避免尖峰!在Android市场上.我的一些朋友已经在他们的手机/平板电脑上下载了应用程序,我被告知它运行得太快了.它在我的android(HTC Dream)上运行得很好.有没有办法告诉它在某些机器人上运行的速度有多快,以及如何相应地调整它?我搜索过低和高,还没有找到答案.
如何使用表面视图打开前置摄像头,并在Android 3.1中录制视频?任何人都可以提供示例代码吗?
android ×6
android-ndk ×1
c++ ×1
c++11 ×1
classloader ×1
cmake ×1
dalvik ×1
graphics2d ×1
java ×1
porting ×1
reflection ×1
stl ×1
text ×1