我知道我可以从https://android.googlesource.com访问android源代码,但如果我只知道软件包和android类的名称,那么很难选择正确的git repo.
是不是有办法在https://android.googlesource.com中找到文件?
从这篇文章中,我知道Android Debug Bridge由三个组件组成:
亚行客户
ADB服务器
设备或模拟器上的守护进程
我想从各自的源代码中更深入地了解这些组件.现在,我发现:
ADB客户:./ system/core/add/adb_client
ADB服务器:./ system/core/add/adb
设备或模拟器上的守护进程:不知道它在框架项目中的位置......
在Google Stock Android日历中存在多个视图(月,周,议程,周),从Google Android Sources Repositories下载的源代码具有相同的应用程序,通过探索代码,命名包com.android.calendar具有负责呈现这些活动的主视图:

通过努力解决代码,我使用了两个包com.android.calendar.month,com.android.calendar但无法实现我的目标,这是我使用的示例:

以及主要的以下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Run Code Online (Sandbox Code Playgroud)
这是我的xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/month"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:paddingTop="1dip"
android:background="@null">
<TextView android:id="@+id/month_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:visibility="gone"
style="@style/MonthView_MiniMonthLabel" />
<include android:id="@+id/day_names" layout="@layout/full_month_header" />
<View
android:background="@color/calendar_grid_line_inner_vertical_color"
android:layout_height="1px"
android:layout_width="match_parent" />
<com.android.calendar.month.MonthListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
直到这里代码工作正常,但有一个空白的白色屏幕和一个操作栏,如果我的问题不明确请尝试编辑它.
What should be done to include Calendar Views (Month, Week, Day) in a custom application ?
Run Code Online (Sandbox Code Playgroud) 最新的AOSP源代码的大小相当大(.repo目录大约为30-35 Gb,工作目录大约为15 Gb).有没有办法只下载最新版本的源代码(官方棉花糖版本)的快照,而没有整个回购历史记录?这样可以节省很多带宽和存储空间.
从http://developer.android.com/reference/android/os/UserManager.html,我们可以找到名为DISALLOW_FUN的奇怪字符串变量,该变量指定是否允许用户玩得开心.
但是,我无法理解它的含义.
任何解释?
我之前写过一个独立的守护进程来访问自定义设备(/ dev/mydev0).看看AOSP源代码,我认为我需要在以下文件中设置策略才能使其工作:
新文件device.te包含:
type mydev_device, dev_type;
Run Code Online (Sandbox Code Playgroud)
新文件mydevsrvc.te包含
# service flash_recovery in init.rc
type mydevsrvc_type, domain;
type mydevsrvc_type_exec, exec_type, file_type;
init_daemon_domain(mydevsrvc_type)
allow mydevsrvc_type mydev_device:chr_file rw_file_perms;
Run Code Online (Sandbox Code Playgroud)
编辑file_contexts添加:
/dev/mydev[0-9]* u:object_r:mydev_device:s0
Run Code Online (Sandbox Code Playgroud)
编辑service_contexts添加:
mydevsrvc u:object_r:mydevsrvc_type:s0
Run Code Online (Sandbox Code Playgroud)
并通过编辑init.flo.rc来启动守护进程以包含以下行:
service mydevsrvc /system/bin/mydevsrvc
class main
user system
group system
seclabel u:r:mydevsrvc_type:s0
oneshot
Run Code Online (Sandbox Code Playgroud)
现在,我需要访问Android应用程序中的设备,所以我必须将守护进程更改为Android系统服务.
我可以使用BOOT_COMPLETED意图启动服务(线程),如前一个问题中所述
我无法弄清楚如何设置SELinux策略,以便此java服务也能够访问dev文件.
[更新]为此,我继续使用特权守护进程.我的java服务通过套接字连接到守护进程.我没有更好的解决方案.
我正在创建一个应用程序,它将在设备锁定时运行Activity#setShowWhenLocked(true).我不想阻止设备进入低功耗状态.我知道系统会这样做Always-On Display,并且显示器具有相关的电源模式:
/frameworks/base/core/java/android/view/Display.java
286 /**
287 * Display state: The display is dozing in a low power state; it is still
288 * on but is optimized for showing system-provided content while the
289 * device is non-interactive.
290 *
291 * @see #getState
292 * @see android.os.PowerManager#isInteractive
293 */
294 public static final int STATE_DOZE = ViewProtoEnums.DISPLAY_STATE_DOZE; // 3
295
296 /**
297 * Display state: The display is dozing in a suspended low power …Run Code Online (Sandbox Code Playgroud) android android-source android-doze-and-standby android-doze android-9.0-pie
需要一些建议或想法.
我正在尝试用Jenkins构建Android 5.1.1 Lollipop.但它无法构建libwebviewchromium.so:
...
out/target/product/generic/obj/GYP/shared_intermediates/blink/bindings/core/v8/V8SVGNumber.cpp:55: error: undefined reference to 'blink::SVGNumberTearOff::setValue(float, blink::ExceptionState&)'
out/target/product/generic/obj/STATIC_LIBRARIES/third_party_WebKit_Source_core_webcore_generated_gyp_intermediates/SVGElementFactory.cpp:383: error: undefined reference to 'blink::SVGMetadataElement::create(blink::Document&)'
external/chromium_org/third_party/WebKit/Source/core/svg/SVGNumberTearOff.h:45: error: undefined reference to 'blink::SVGNumberTearOff::SVGNumberTearOff(WTF::PassRefPtr<blink::SVGNumber>, blink::SVGElement*, blink::PropertyIsAnimValType, blink::QualifiedName const&)'
collect2: error: ld returned 1 exit status
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so] Error 1
Run Code Online (Sandbox Code Playgroud)
同时,当我尝试手动构建它时,它成功:
. build/envsetup.sh
set_stuff_for_environment
lunch zh2_qemu_eng
make clean
make -j24
Run Code Online (Sandbox Code Playgroud)
我想知道当使用控制台时相同的操作可以成功,并且在使用Jenkins时失败.你能和我分享你的想法吗?
PS构建机器有24GB RAM和15GB交换文件,以及512 GB SSD闪存盘(62%可用).操作系统是Ubuntu 14.04LTS,64位.
$ free -m
total used free shared buffers cached
Mem: 24021 22079 1942 75 4778 8768
-/+ buffers/cache: 8532 15488
Swap: 16036 345 15691
Run Code Online (Sandbox Code Playgroud) android android-source jenkins webviewchromium android-5.1.1-lollipop
随着新的构建系统,即"Soong",Android的替代Android.mk使用Android.bp。Android Q 以后,无论文件在哪里,Soong都会选择所有Android.bp文件。早些时候,对于 2 级和 3 级模块,除非 .bp 指示,否则不会拾取 Android.bp 文件"optional_dirs"。现在这也已被弃用。引用 android 源代码的platform/build/soong/root.bp:
// Soong finds all Android.bp and Blueprints files in the source tree,
// subdirs= and optional_subdirs= are obsolete and this file no longer
// needs a list of the top level directories that may contain Android.bp
// files.
Run Code Online (Sandbox Code Playgroud)
我查看了Soongapi 并找到了一个叫做"visibility" 的东西,使用它我们可以将包设为私有或公开或隐藏;但无论哪种方式,它都不会停止Soong挑选包裹的Android.bp. 现在似乎没有办法说不Soong选择特定的Android.bp …
系统:ubuntu 18.04环境?VirtualBox 第一次在Ubuntu 18.04上编译AOSP源码,通过了,第二次编译失败。这是一条错误消息。
[ 10% 538/4980] Ensuring Jack server is installed and started
FAILED: setup-jack-server
/bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 4.11.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.32.CANDIDATE.jar 4.32.CANDIDATE || exit 47 )"
Jack server already installed in "/home/user/.jack-server"
Communication error with Jack server (35), try 'jack-diagnose' or see Jack server log
SSL error when …Run Code Online (Sandbox Code Playgroud) android ×10
android-source ×10
adb ×1
android-doze ×1
android-view ×1
android-xml ×1
curl ×1
git ×1
go ×1
jenkins ×1
libcurl ×1
openssl ×1
selinux ×1
service ×1