/** *TheSdkCheckerverifiesifagivensymbolispresentinagivenclasspath. * *Forconvenienceandfutureextensibilitytheclasspathisgivenassetof *dexfiles,simillartoaregularclasspaththeAPKsuse. * *Thesymbol(method,field,class)ischeckedbasedonitsdescriptorandnot *accordingtheanyaccesschecksemantic. * *Thisclassisintendedtobeusedduringoff-deviceAOTverificationwhen *onlysomepredefinedsymbolsshouldberesolved(e.g.belongingtosomepublic *APIclasspath).
*/ class SdkChecker { public: // Constructs and SDK Checker from the given public sdk paths. The public_sdk // format is the same as the classpath format (e.g. `dex1:dex2:dex3`). The // method will attempt to open the dex files and if there are errors it will // return a nullptr and set the error_msg appropriately.
EXPORT static SdkChecker* Create(const std::string& public_sdk, std::string* error_msg);
// Verify if it should deny access to the given methods. // The decision is based on whether or not any of the API dex files declares a method // with the same signature. // // NOTE: This is an expensive check as it searches the dex files for the necessary type // and string ids. This is OK because the functionality here is indended to be used // only in AOT verification. bool ShouldDenyAccess(ArtMethod* art_method) const REQUIRES_SHARED(Locks::mutator_lock_);
// Similar to ShouldDenyAccess(ArtMethod* art_method). bool ShouldDenyAccess(ArtField* art_field) const REQUIRES_SHARED(Locks::mutator_lock_);
// Similar to ShouldDenyAccess(ArtMethod* art_method). bool ShouldDenyAccess(std::string_view type_descriptor) const;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.