Skip to content

Commit 65850ee

Browse files
committedJan 16, 2025
Update issue documentation: include test resources
This CL updates the issue documentation to include the latest metadata (including a handful of new issues), and also includes more test resources even when they're binary.
1 parent 99523ca commit 65850ee

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+815
-74
lines changed
 

‎docs/checks/Aligned16KB.md.html

+138
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
<meta charset="utf-8">
2+
(#) Native library dependency not 16 KB aligned
3+
4+
!!! WARNING: Native library dependency not 16 KB aligned
5+
This is a warning.
6+
7+
Id
8+
: `Aligned16KB`
9+
Summary
10+
: Native library dependency not 16 KB aligned
11+
Severity
12+
: Warning
13+
Category
14+
: Correctness
15+
Platform
16+
: Android
17+
Vendor
18+
: Android Open Source Project
19+
Feedback
20+
: https://issuetracker.google.com/issues/new?component=192708
21+
Affects
22+
: Gradle build files and TOML files
23+
Editing
24+
: This check can *not* run live in the IDE editor
25+
See
26+
: https://developer.android.com/guide/practices/page-sizes
27+
Implementation
28+
: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/PageAlignmentDetector.kt)
29+
Tests
30+
: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/PageAlignmentDetectorTest.kt)
31+
Copyright Year
32+
: 2025
33+
34+
Historically, Android has aligned memory using 4 KB memory page sizes,
35+
which optimized system memory performance for the average amount of
36+
total memory that Android devices have typically had.
37+
38+
To support devices that only support 16 KB aligned libraries in the
39+
future, the Google Play Store will soon require all apps to be compiled
40+
with 16 KB aligned libraries.
41+
42+
An app compiled with 4 KB aligned libraries will not work correctly on
43+
these devices. To ensure compatibility with these devices and to
44+
future-proof your app, the Play Store will require native libraries to
45+
be aligned to 16 KB boundaries.
46+
47+
If your app uses any NDK libraries, either directly or indirectly
48+
through an SDK, you'll need to rebuild your app to meet this new
49+
requirement. This means ensuring that all native libraries within your
50+
app, including those from any dependencies, are built with 16 KB page
51+
alignment.
52+
53+
This lint check helps identify potential issues by inspecting all
54+
transitive libraries your app depends on. If any nested native libraries
55+
are found to be aligned only to 4 KB, you'll need to take action.
56+
57+
If lint flags a library, try updating to a newer version that supports
58+
16 KB alignment. If no updated version is available, reach out to the
59+
library vendor for assistance.
60+
61+
(##) Example
62+
63+
Here is an example of lint warnings produced by this check:
64+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
65+
build.gradle:2:Warning: The native library
66+
arm64-v8a/libtensorflowlite_jni.so (from
67+
org.tensorflow:tensorflow-lite:2.16.1) is not 16 KB aligned
68+
[Aligned16KB]
69+
implementation("org.tensorflow:tensorflow-lite:2.16.1")
70+
---------------------------------------
71+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72+
73+
Here are the relevant test files:
74+
75+
`build.gradle`:
76+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
77+
dependencies {
78+
implementation("org.tensorflow:tensorflow-lite:2.16.1")
79+
}
80+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81+
82+
[build/intermediates/exploded-aar/org.tensorflow/tensorflow-lite/2.16.1/jni/arm64-v8a/libtensorflowlite_jni.so](examples/arm64-v8a/libtensorflowlite_jni.so)
83+
84+
[build/intermediates/exploded-aar/org.tensorflow/tensorflow-lite/2.16.1/jni/x86_64/libtensorflowlite_jni.so](examples/x86_64/libtensorflowlite_jni.so)
85+
86+
[build/intermediates/exploded-aar/org.tensorflow/tensorflow-lite/2.16.1/jni/armeabi-v7a/libtensorflowlite_jni.so](examples/armeabi-v7a/libtensorflowlite_jni.so)
87+
88+
[build/intermediates/exploded-aar/org.tensorflow/tensorflow-lite/2.16.1/jni/x86/libtensorflowlite_jni.so](examples/x86/libtensorflowlite_jni.so)
89+
90+
You can also visit the
91+
[source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/PageAlignmentDetectorTest.kt)
92+
for the unit tests for this check to see additional scenarios.
93+
94+
(##) Suppressing
95+
96+
You can suppress false positives using one of the following mechanisms:
97+
98+
* Using a suppression comment like this on the line above:
99+
100+
```kt
101+
//noinspection Aligned16KB
102+
problematicStatement()
103+
```
104+
105+
* Using a special `lint.xml` file in the source tree which turns off
106+
the check in that folder and any sub folder. A simple file might look
107+
like this:
108+
```xml
109+
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
110+
&lt;lint&gt;
111+
&lt;issue id="Aligned16KB" severity="ignore" /&gt;
112+
&lt;/lint&gt;
113+
```
114+
Instead of `ignore` you can also change the severity here, for
115+
example from `error` to `warning`. You can find additional
116+
documentation on how to filter issues by path, regular expression and
117+
so on
118+
[here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html).
119+
120+
* In Gradle projects, using the DSL syntax to configure lint. For
121+
example, you can use something like
122+
```gradle
123+
lintOptions {
124+
disable 'Aligned16KB'
125+
}
126+
```
127+
In Android projects this should be nested inside an `android { }`
128+
block.
129+
130+
* For manual invocations of `lint`, using the `--ignore` flag:
131+
```
132+
$ lint --ignore Aligned16KB ...`
133+
```
134+
135+
* Last, but not least, using baselines, as discussed
136+
[here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html).
137+
138+
<!-- Markdeep: --><style class="fallback">body{visibility:hidden;white-space:pre;font-family:monospace}</style><script src="markdeep.min.js" charset="utf-8"></script><script src="https://morgan3d.github.io/markdeep/latest/markdeep.min.js" charset="utf-8"></script><script>window.alreadyProcessedMarkdeep||(document.body.style.visibility="visible")</script>

‎docs/checks/AppLinkSplitToWebAndCustom.md.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
Feedback
2020
: https://issuetracker.google.com/issues/new?component=192708
2121
Since
22-
: 8.8.0-alpha08 (October 2024)
22+
: 8.8.0 (January 2025)
2323
Affects
2424
: Manifest files
2525
Editing

0 commit comments

Comments
 (0)