Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@chingjun
Copy link
Contributor

When .so files are in the lib/ path in the APK, it can be dlopen-ed
directly using just the filename. We don't need to search for the file.
The interface has thus been changed to accept a single path instead of a
search directory.

Also instead of hardcoding the .so basename and assets directory, read
them from FlutterApplicationInfo instead.

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides].
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test exempt. See [testing the engine] for instructions on
    writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the [CLA].
  • All existing and new tests are passing.
  • The reviewer has submitted any presubmit flakes in this PR using the [engine presubmit flakes form] before re-triggering the failure.

When .so files are in the lib/ path in the APK, it can be dlopen-ed
directly using just the filename. We don't need to search for the file.
The interface has thus been changed to accept a single path instead of a
search directory.

Also instead of hardcoding the .so basename and assets directory, read
them from FlutterApplicationInfo instead.
@chingjun
Copy link
Contributor Author

Another note, in the .aab file that @GaryQian sent to me, the .so file in the base module is called libapp.so but the one in the feature module is called app.so-2.part.so.

The change is this PR will be looking for libapp.so-2.part.so instead, which makes it incompatible with whatever code you currently have. I believe the tooling code is not submitted yet, so it's not breaking anyone yet. Please correct me if I am wrong, I can update the tooling to keep the filenames consistent.

@GaryQian
Copy link
Contributor

Changing to libapp.so-2.part.so is no problem. I'll give this a more thorough look tomorrow.

Copy link
Contributor

@GaryQian GaryQian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

* when a library is sucessfully found. When the found library is invalid, no additional paths
* will be attempted.
* @param sharedLibraryName File name of the .so file to be loaded, or if the file is not already
* in LD_LIBRARY_PATH, the full path to the file. Note: .so files in the lib/<abi> directory
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove Note. Also, may want to replicate this info about lib/ in the DeferredComponentManager docs as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated, and added this to the DeferredComponentManager docs. Thanks for the review!

@chingjun chingjun merged commit 7c19824 into flutter:master Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 22, 2021
zanderso pushed a commit to flutter/flutter that referenced this pull request Jan 23, 2021
* 5b2defd Roll Fuchsia Mac SDK from MrtHftV0U... to 7nZajqutF... (flutter/engine#23827)

* c8ffb20 Roll Skia from 87a055b02027 to e0d023562bd9 (1 revision) (flutter/engine#23829)

* 296902b implemented GetMainContext() for opengl (flutter/engine#23634)

* 5cf3eae Roll Skia from e0d023562bd9 to 982127b7d57d (4 revisions) (flutter/engine#23831)

* fd9a079 [iOS] Fixes DisplayLinkManager leaks (flutter/engine#22194)

* b241537 Roll Fuchsia Linux Toolchain from git_revision:2c0536b76b35fa592ac7b4a0e4bb176eaf55af75 to IJxh_9dNS... (flutter/engine#23832)

* 5c2003f Roll Skia from 982127b7d57d to 6de1e52d0b12 (1 revision) (flutter/engine#23834)

* 5b9cd44 Automatically download Noto fonts as backup fonts in CanvasKit mode (flutter/engine#23728)

* 70a6824 Roll Dart SDK from 5e24a66b1bb8 to 704928da5702 (2 revisions) (flutter/engine#23838)

* b0c46d8 Roll Skia from 6de1e52d0b12 to 8a37fb2c605b (5 revisions) (flutter/engine#23836)

* d4132ea Use references when iterating over SkParagraph text boxes (flutter/engine#23837)

* 87960d8 Fix typo in embedder unit tests (flutter/engine#23783)

* 7f66714 iOS deeplink sends "path + query" instead of just path (flutter/engine#23562)

* 1474d08 Roll Skia from 8a37fb2c605b to 37d16f135265 (4 revisions) (flutter/engine#23839)

* 3da13fc Make android more lenient when it comes to out-of-order key event responses (flutter/engine#23604)

* 9223073 Fix background crash when FlutterView going appear while app goes background (flutter/engine#23175)

* 7c19824 Pass the filename directly to JNI for loading deferred component. (flutter/engine#23824)

* 5dc2469 Reland path vol tracker (flutter/engine#23840)

* e7e76f1 Roll Skia from 37d16f135265 to e89d8ea20b62 (2 revisions) (flutter/engine#23841)

* 07f4861 Roll Dart SDK from 704928da5702 to 1db2d4d95562 (1 revision) (flutter/engine#23846)

* 993ab78 Roll Skia from e89d8ea20b62 to c09761f57605 (1 revision) (flutter/engine#23843)

* a4836a6 Call Dart plugin registrant if available (flutter/engine#23813)

* 475a234 Roll Fuchsia Linux SDK from UGavhI1zv... to mODEe2CNk... (flutter/engine#23848)

* b51da31 Roll Skia from c09761f57605 to 450f8565c7f3 (5 revisions) (flutter/engine#23851)

* cb7106d Roll Skia from 450f8565c7f3 to 372791761157 (1 revision) (flutter/engine#23855)

* 69980e5 Roll Fuchsia Mac SDK from 7nZajqutF... to tuJCioUf3... (flutter/engine#23857)

* 20ff574 Roll Skia from 372791761157 to ce75036b3eaf (4 revisions) (flutter/engine#23858)

* 0118b54 Implements accessibility bridge in common library (flutter/engine#23491)

* ffc77f0 Search multiple paths when loading deferred component .so files. (flutter/engine#23849)

* 71d264d Revert "implemented GetMainContext() for opengl (#23634)" (flutter/engine#23859)

* fb48735 Roll Skia from ce75036b3eaf to cc6961b9ac5e (3 revisions) (flutter/engine#23860)

* fdddf87 Roll Dart SDK from 1db2d4d95562 to 82b4c77fb17f (2 revisions) (flutter/engine#23861)
hjfreyer pushed a commit to hjfreyer/engine that referenced this pull request Mar 22, 2021
…utter#23824)

When .so files are in the lib/ path in the APK, it can be dlopen-ed
directly using just the filename. We don't need to search for the file.
The interface has thus been changed to accept a single path instead of a
search directory.

Also instead of hardcoding the .so basename and assets directory, read
them from FlutterApplicationInfo instead.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants