我正在学习android电视节目。我想准备好所需的硬件。但是在网站http://developer.android.com/training/tv/start/start.html 上, 我只能找到在模拟器上运行的指南。我很好奇如何在真正的电视上运行应用程序。
为安卓手机开发时。我需要使用 USB 数据线连接到手机并在手机上启用 USB 调试。在电视上跑步怎么样?
电视需要具备哪些功能?我认为电视需要一些智能功能和某种 android 运行时平台。我怎样才能做到这一点?
如果我没有智能电视,我可以使用带有一些接口的非智能电视进行开发吗?
我想要做的是显示一个 PopupWindow 指向工具栏上的溢出图标(三个点)。所以我需要使用图标的 id 来获取对 View 对象的引用。但是id是什么?
PopupWindow 用于告诉用户有新条目添加到溢出菜单中。并建议用户检查一下。
我在linux内核中查看这个头文件:https: //elixir.bootlin.com/linux/v4.14/source/arch/x86/boot/string.h
#ifndef BOOT_STRING_H
#define BOOT_STRING_H
/* Undef any of these macros coming from string_32.h. */
#undef memcpy
#undef memset
#undef memcmp
void *memcpy(void *dst, const void *src, size_t len);
void *memset(void *dst, int c, size_t len);
int memcmp(const void *s1, const void *s2, size_t len);
#define memcpy(d,s,l) __builtin_memcpy(d,s,l)
#define memset(d,c,l) __builtin_memset(d,c,l)
#define memcmp __builtin_memcmp
...
#endif /* BOOT_STRING_H */
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚#undef +函数声明+宏在memcpy,memset和memcmp上的定义是什么.例如,它首先声明一个函数memcpy,然后在此之后定义一个宏memcpy.我不确定这是什么目的.我发现这个函数在这里定义:https://elixir.bootlin.com/linux/v4.14/source/arch/x86/boot/copy.S#L20.如果代码中的某个地方使用memcpy(例如这里:https://elixir.bootlin.com/linux/v4.14/source/arch/x86/boot/main.c#L40)使用memcpy它使用什么?copy.S或__builtin_memcpy中定义的函数?
我想在同一个画布上绘制两个图像。第一张图片是 background.jpg,第二张图片是 photo.jpg。我希望 photo.jpg 总是在另一个之上:
var ctx = document.getElementById("main").getContext("2d");
var background = new Image();
var photo = new Image();
background.onload = function() {
ctx.drawImage(background, 0, 0);
}
photo.onload = function() {
ctx.drawImage(photo, 0, 0);
}
background.src = "background.jpg";
photo.src = "photo.jpg"
Run Code Online (Sandbox Code Playgroud)
我的问题是如何确保照片始终位于顶部。因为 onload 是回调,所以我不能对调用顺序做任何假设。谢谢!
我正在尝试使用TextView显示带有自定义标记的String文本:
字符串:
"<articlelink>text1</articlelink> padding<articlelink>text2</articlelink>"
Run Code Online (Sandbox Code Playgroud)
articlelink是自定义标记的位置.我使用自定义的HTML.TagHandler来处理标签:
private class MyTagHandler implements Html.TagHandler {
private int startIndex = 0;
private int endIndex = 0;
@Override
public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) {
if (tag.equals("articlelink")) {
if (opening) {
startIndex = output.length();
DebugLog.d("OPEN " + startIndex);
} else {
endIndex = output.length();
DebugLog.d("END " + endIndex);
MyClickableSpan span = new MyClickableSpan();
output.setSpan(span, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是日志是:
OPEN 0
OPEN 13
END 18
END 18
Run Code Online (Sandbox Code Playgroud)
但是,在我在字符串之前插入一个字符后,输出就是我所期望的:
串: …
现在,我的ubuntu 15.10机器上的gcc和g ++是5.2.1版。由于某些原因,我需要安装其中的v4.4。我下载了gcc4.4.7的源代码并使用以下代码进行配置:
../configure \
--disable-checking \
--enable-languages=c,c++ \
--enable-multiarch \
--enable-shared \
--enable-threads=posix \
--program-suffix=4.4 \
--with-gmp=/usr/local/lib \
--with-mpc=/usr/local/lib \
--with-mpfr=/usr/local/lib \
--without-included-gettext \
--with-system-zlib \
--with-tune=generic \
--prefix=$HOME/bin/android_build
Run Code Online (Sandbox Code Playgroud)
我得到了一个makefile,然后尝试make,但收到以下两个错误:
../../gcc/toplev.c:536:1: error: redefinition of ‘floor_log2’
../../gcc/toplev.c:571:1: error: redefinition of ‘exact_log2’
Run Code Online (Sandbox Code Playgroud)
那么如何解决这个问题呢?谢谢。
引自"Thinking in c ++"一书关于寄存器变量的部分:"寄存器变量的使用存在限制.你不能获取或计算寄存器变量的地址.一个寄存器变量只能在一个块中声明(你不能有全局或静态寄存器变量.)"
所以我写了这段程序来测试:
int global = 2;
// error
// register int global2 = 3;
int main() {
register int local2 = 2;
cout << local2 << " " << &local2 << endl;
}
Run Code Online (Sandbox Code Playgroud)
但是g ++没有生成错误,打印出local2的地址.那么为什么我可以在没有错误的情况下获取地址?
我正在尝试使用CrudRepository创建用户模型:
@Entity
public class User {
@Id
@GeneratedValue
private String username;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
public interface UserRepository extends CrudRepository<User, String> {
}
Run Code Online (Sandbox Code Playgroud)
但是,每次调用findOne()时,都会出现500错误:
@Controller
public class UserController {
@Autowired
private UserRepository users;
@Override
@RequestMapping(value="/register", method=RequestMethod.POST)
public @ResponseBody User register(@RequestBody User userToRegister) {
String username = userToRegister.getUsername();
User …Run Code Online (Sandbox Code Playgroud) 我只是下载了android开源项目并尝试使用make我收到消息来构建它:
build/core/prebuilt.mk:91: *** recipe commences before first target. Stop.
Run Code Online (Sandbox Code Playgroud)
这是相应的make文件片段(这里的第一行是第89行):
ifneq ($(prebuilt_module_is_a_library),)
ifneq ($(LOCAL_IS_HOST_MODULE),)
$(transform-host-ranlib-copy-hack)
else
$(transform-ranlib-copy-hack)
endif
endif
Run Code Online (Sandbox Code Playgroud)
我不确定这个make文件有什么问题?第91行上的前一个空格是一个标签.
我曾经在我的Mac上建立aosp.最近我升级了mac os Mac Sierra(10.12).我在构建项目时收到此错误消息:
找不到支持的mac sdk:["10.8""10.9""10.10""10.11"]
mac sdk版本已升级到10.12,但它不在支持的mac sdk列表中.什么可以解决这个问题?
android ×3
android-tv ×1
c ×1
c++ ×1
canvas ×1
g++ ×1
gcc ×1
gcc4.4 ×1
html ×1
javascript ×1
linux-kernel ×1
makefile ×1
spring ×1
spring-data ×1
textview ×1