ART services: optimize package - Add artd methods.

This change adds two artd methods: `getDexoptNeeded` and `dexopt`, which
are used for app compilation.

Also, this CL replaces all `StringPrintf` with `_format`.

Bug: 229268202
Test: m test-art-host-gtest-art_artd_tests
Ignore-AOSP-First: ART Services.
Change-Id: I51a42816750ff39c768658f739c7e6337cfe3e1c
diff --git a/artd/file_utils.h b/artd/file_utils.h
index 9dc41f4..b5fd170 100644
--- a/artd/file_utils.h
+++ b/artd/file_utils.h
@@ -119,8 +119,15 @@
 // Opens a file for reading.
 android::base::Result<std::unique_ptr<File>> OpenFileForReading(const std::string& path);
 
-// Converts FsPermission to Linux access mode.
-mode_t FsPermissionToMode(const aidl::com::android::server::art::FsPermission& fs_permission);
+// Converts FsPermission to Linux access mode for a file.
+mode_t FileFsPermissionToMode(const aidl::com::android::server::art::FsPermission& fs_permission);
+
+// Converts FsPermission to Linux access mode for a directory.
+mode_t DirFsPermissionToMode(const aidl::com::android::server::art::FsPermission& fs_permission);
+
+// Changes the owner based on FsPermission.
+android::base::Result<void> Chown(
+    const std::string& path, const aidl::com::android::server::art::FsPermission& fs_permission);
 
 }  // namespace artd
 }  // namespace art