我想用AOSP运行helloworld应用程序并在模拟器中看到它.[不通过Android SDK设置]
我按照http://source.android.com/source/download.html中的步骤操作, 并成功编译了/ directory中的完整代码.
我可以在〜/ mydroid/out/target/product/generic/system/app中看到contacts.apk,camera.apk所有应用程序apk.
我尝试了两件事.
1 - 去/ package/apps文件夹.拿了一个helloworld应用程序(在android-sdk中创建的helloworld文件夹),并从Launcher2文件夹中复制了一个'Android.mk'文件,保留了我的应用程序新名称,并将该文件夹放在packages/app文件夹中并在/编译.我看不到为〜/ mydroid/out/target/product/generic/system/app创建的.apk文件.
2 - 我在'Android,mk'文件的packages/app文件夹中更改了Launcher2的软件包名称,并在root用户编译.我无法在〜/ mydroid/out/target/product/generic/system/app下的新打包名称上看到新的apk.
我尝试了几次活动名称,manifest.xml文件中的应用程序名称的更改.没有什么能反映出来.但是可以肯定的是,helloworld和包名的变化都会在编译时被拾取.我可以看到中间类被创建了.〜/ mydroid/out/target/common/obj/APPS/manifirst_intermediates/src/com/android/mani - > manifirst就像我创建和运行的helloworld.〜/ mydroid /出/目标/普通/ OBJ/APPS/Launcher2_intermediates/src目录/ COM /安卓/发射器
任何人都可以分享在AOSP中编写一个简单的Helloworld程序的步骤.
谢谢,玛尼
如您所知,https://android.googlesource.com/中列出了数百个项目.我想在windows机器上全部下载它们.根据谷歌的文件,
To install, initialize, and configure Repo:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
To clone the entire platform, install repo, and run:
mkdir mydroid
cd mydroid
repo init -u https://android.googlesource.com/platform/manifest
repo sync
Run Code Online (Sandbox Code Playgroud)
但是,在我的机器中,我无法在Git Bash中"repo init",因为它说它没有python.我安装了python,但git bash无法识别它.请注意,我也将python目录设置为系统路径.如果有人能给出小费,我将不胜感激.谢谢
更新:我认为新版本的Git Bash for Windows存在问题.系统路径根本不适用于Git Bash - 我可以轻松测试系统路径是否与命令提示符一起使用.无论如何,我尝试了这个,当然它实际上运行错误.
/c/python27/python.exe ../bin/repo init -u https://android.googlesource.com/platform/manifest
Run Code Online (Sandbox Code Playgroud)
错误消息是
$ /c/python27/python.exe ../bin/repo init -u https://android.googlesource.com/platform/manifest
Traceback (most recent call last):
File "../bin/repo", line 91, in <module>
import readline
ImportError: No module named readline …Run Code Online (Sandbox Code Playgroud) 所以,这不像其他问题.我基本上有一个问题
Android项目构建系统使用Android.mk文件.
是否有任何eclipse插件可以解析mk文件并允许我将这些项目加载到eclipse中?基本上导入Android.mk文件项目...
我在我的s2上有一个预定义的应用程序,让我收听广播.它不使用互联网,而是使用周围的无线电波.有什么方法可以使用该功能以编程方式启动无线电并搜索广播电台?
是否可以调试android框架的系统服务?
我遇到过这些链接,但没有成功调试系统服务.
背景
我正在研究拨号器应用程序.我愿意使应用程序opensource.我努力分叉AOSP拨号器应用程序(链接).
但是,我以前没有经历过AOSP申请.几个小时后,我发现它非常困难.
方法尝试
我正在使用Android Studio工作.我已将AOSP组件的资源和源代码复制为我项目中的模块.依赖关系可以解决.
主要困难
依赖性过多.从make文件(链接),拨号器依赖于ContactsCommon(链接),InCallUI(链接),android-common(链接),vcard(链接)等.我尝试通过导入这些模块解决依赖关系.然而,出现了更多的问题.
只有权限才能被授予系统应用程序.
有些方法只能由系统应用程序看到.它们对用户应用程序是隐藏的.
具有重复名称和产品属性的字符串资源.我已经读过它们应该在预编译时处理.但是,是否可以使用Gradle处理它们?
目标
我的目标是发布类似于ExDialer(链接)的增强型拨号器应用程序.我没有制作另一台拨号器来替换自定义ROM中的原始拨号器.
因此,根本不需要许多依赖性和权限.我只是不知道如何分离AOSP应用程序的"系统"部分和"用户"部分.
提议的方法
我很可能会复制和修改资源和源代码,而不是分支原始的AOSP拨号器.他们是否有更好的方法来分配AOSP应用程序,从而重用现有资源和源代码?
当我尝试通过fastboot system.img(从我的自定义AOSP版本)闪存到Sony Xperia Z3时,我收到以下错误:
# fastboot flash system system.img
sending 'system' (584106 KB)...
OKAY [ 18.294s]
writing 'system'...
FAILED (remote: size too large)
finished. total time: 18.297s
Run Code Online (Sandbox Code Playgroud)
Z3有大约2GB的系统分区,我不知道为什么闪存失败.
在AOSP有libhardare库包含接口,GPS驱动器- gps.h.使用此界面,您可以在低级别(C++)上访问GPS驱动程序,打开GPS并获取设备的当前位置.
在互联网上有几个项目,使用这个GPS接口.例如,这个由kanru创建.这段代码几乎完美 - 我可以连接到GPS驱动程序并获得正确的位置.
但是我遇到了一个问题.如果您使用kanru项目打开GPS驱动程序,并在一段时间后通过标准方法(在GUI中)打开GPS,那么C++程序将突然停止从GPS驱动程序接收信息.同时在GUI中,您可以看到GPS已开启,您可以启动Google地图或任何其他GPS相关应用程序并获取坐标.
我尝试GpsInterface通过hw_device_t指针重启,关闭和打开GPS驱动程序,甚至重启整个C++可执行文件 - 没有效果.重启程序后GPS驱动程序改变状态GPS_STATUS_ENGINE_ON然后 - 静音.
我还试图改变行动的顺序.我在GUI中启用了GPS,启动了Google地图并等了几分钟才到达我的位置.然后我开始了我的C++程序.它成功连接到GPS驱动程序并开始获取位置数据.同时GUI与GPS驱动器"丢失"连接.
我尝试在Android 4.2和5.1的几个设备上测试我的程序,并在大多数设备上遇到同样的问题.只有搭载Android 5.1的三星S6,我的程序能够在各种条件下完美运行.
在某些设备上似乎配置了GPS驱动程序,以便它只能与一个数据消费者一起使用.
也许有人遇到过类似的问题?
我有Android O HIDL的问题.失败日志显示它无法找到服务.
但是我可以看到它 adb shell ps -A | grep fingerprint
system 18758 1 17408 3276 pipe_wait 7c79e93e08 R android.hardware.biometrics.fingerprint@2.1-service`
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一个如何解决问题的提示吗?我检查了https://source.android.com/devices/architecture/hidl/但无法获得解决方案.
错误日志:
08-21 06:00:35.864 1890 2264 V FingerprintService: mDeamon was null, reconnect to fingerprint
08-21 06:00:35.864 1890 2264 I system_server: Looking for service android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint/default
08-21 06:00:35.864 2240 2240 D wpa_supplicant: nl80211: Set mode ifindex 24 iftype 2 (STATION)
08-21 06:00:35.866 566 566 W /system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint in either framework or device manifest, using default transport. …Run Code Online (Sandbox Code Playgroud) android hal android-source android-hardware android-8.0-oreo