CN106325847B - Method and device for acquiring application program function based on iOS platform - Google Patents

Method and device for acquiring application program function based on iOS platform Download PDF

Info

Publication number
CN106325847B
CN106325847B CN201510394786.4A CN201510394786A CN106325847B CN 106325847 B CN106325847 B CN 106325847B CN 201510394786 A CN201510394786 A CN 201510394786A CN 106325847 B CN106325847 B CN 106325847B
Authority
CN
China
Prior art keywords
dynamic library
path
application program
directory
dynamic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510394786.4A
Other languages
Chinese (zh)
Other versions
CN106325847A (en
Inventor
陈梦雨
徐春雨
王川艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikrobot Co Ltd
Original Assignee
Hangzhou Haikang Robot Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Haikang Robot Technology Co Ltd filed Critical Hangzhou Haikang Robot Technology Co Ltd
Priority to CN201510394786.4A priority Critical patent/CN106325847B/en
Publication of CN106325847A publication Critical patent/CN106325847A/en
Application granted granted Critical
Publication of CN106325847B publication Critical patent/CN106325847B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The application discloses a method and a device for acquiring application program functions based on an iOS platform. Wherein, the method comprises the following steps: initiating a request for acquiring the dynamic library information to a dynamic library information server; receiving dynamic library information returned by the dynamic library information server according to the request, wherein the dynamic library information at least comprises the following information: a dynamic library ID, an entry view controller name and a dynamic library download path; establishing a dynamic library directory under a first sandbox path of an application program according to the dynamic library ID, and acquiring a dynamic library storage path; downloading the dynamic library from the dynamic library storage server according to the dynamic library downloading path, and storing the dynamic library into the dynamic library directory according to the dynamic library storage path; and loading the downloaded dynamic library into the application program so as to be called by the application program. By the embodiment of the application, the technical problem that the efficiency of updating the application program on the mobile equipment operating system is low in the prior art is solved.

Description

Method and device for acquiring application program function based on iOS platform
Technical Field
The application relates to the technical field of computer application programs, in particular to a method and a device for acquiring application program functions based on an iOS platform.
Background
In the plug-in architecture implementation of software, there are more mature implementation examples, such as the implementation of eclipse. The specification of eclipse is mainly based on the architecture of java language, and a standardized plug-in system is not established in the environment of other languages (such as C + +).
The conventional software system has several schemes for upgrading software via a network:
1) and directly downloading the latest installation package for installation.
2) And the software system detects the new version by itself and prompts a user to download and install the new version.
3) And on the basis of the method 2, detecting a local version, reporting to the server, giving an address of the increment package by the server, and then downloading and installing the increment upgrade package on the server by the client.
Schemes 1) and 2) are common methods, but the efficiency is low, and the whole installation package can be downloaded even with little change. The generation technology of the incremental package of the scheme 3) determines the redundancy of the downloading, and the 3 schemes all need the assistance of a user and the downloading is completed.
In order to solve the above problems, in the prior art, a microkernel plug-in application can be used for a Personal Computer (PC) client to realize automatic upgrade of software. The technology uses an extensible plug-in structure, the dependency relationship between the plug-ins is described through a plug-in resource description file, and the microkernel can be used for nesting and loading the plug-in resources according to the plug-in resource configuration file. The automatic plug-in version judgment, the automatic plug-in downloading and the plug-in-based lazy loading program architecture are realized, and the automation of system upgrading is realized. However, this solution has the following disadvantages:
1) the mobile platform is not described, and the method in the scheme cannot be directly used in the iOS platform;
2) and a solution is not provided for the problem of resource competition of the plug-in when using the local resource, so that different plug-ins and possibly sending resource competition when using the local resource cause system errors.
From the above analysis, in the prior art, when the application program on the operating system of the apple mobile device is upgraded or replaced, the whole application program needs to be resubmitted to the apple application program store for long auditing, which results in low update efficiency of the application program.
Aiming at the technical problem of low efficiency of updating the application program on the operating system of the mobile equipment in the prior art, no effective solution is provided at present.
Disclosure of Invention
The embodiment of the application provides a method and a device for acquiring application program functions based on an iOS platform, so as to at least solve the technical problem of low efficiency of updating application programs on a mobile device operating system in the prior art.
According to an aspect of an embodiment of the present application, there is provided a method for acquiring application functions based on an iOS platform, the method including: initiating a request for acquiring the dynamic library information to a dynamic library information server; receiving dynamic library information returned by the dynamic library information server according to the request, wherein the dynamic library information at least comprises the following information: a dynamic library ID, an entry view controller name and a dynamic library download path; establishing a dynamic library directory under a first sandbox path of an application program according to the dynamic library ID, and acquiring a dynamic library storage path; downloading the dynamic library from the dynamic library storage server according to the dynamic library downloading path, and storing the dynamic library into the dynamic library directory according to the dynamic library storage path; and loading the downloaded dynamic library into the application program so as to be called by the application program.
According to another aspect of the embodiments of the present application, there is also provided an apparatus for acquiring application functions based on an iOS platform, the apparatus including: the initiating unit is used for initiating a request for acquiring the dynamic library information to the dynamic library information server; a receiving unit, configured to receive dynamic library information returned by the dynamic library information server according to the request, where the dynamic library information at least includes the following information: a dynamic library ID, an entry view controller name and a dynamic library download path; the establishing unit is used for establishing a dynamic library directory under a first sandbox path of the application program according to the dynamic library ID and acquiring a dynamic library storage path; the downloading unit is used for downloading the dynamic library from the dynamic library storage server according to the dynamic library downloading path and storing the dynamic library into the dynamic library directory according to the dynamic library storage path; and the loading unit is used for loading the downloaded dynamic library into the application program so as to be called by the application program.
By adopting the embodiment of the application, the corresponding dynamic library can be downloaded to the application program from the dynamic library storage server according to the received dynamic library information by initiating the request for acquiring the dynamic library information and receiving the dynamic library information returned by the dynamic library information server according to the request; after the dynamic library is downloaded, the application program can load and call the dynamic library so as to obtain the corresponding function of the dynamic library, and the purpose of updating the function of the application program or increasing the function of the application program is achieved by downloading a new dynamic library from the dynamic library storage server or updating the existing dynamic library. In the embodiment of the application, when the application program is upgraded or replaced, the whole application program does not need to be resubmitted to the apple application program store for long auditing, and the purpose of updating the application program function or increasing the application program function can be achieved only by updating or increasing the dynamic library corresponding to the required function. Through the embodiment of the application, the technical problem of low efficiency of updating the application program on the mobile equipment operating system in the prior art is solved, the technical effect that the application program function is updated or added through a dynamic library without reinstalling the whole application program is achieved, the operation is simple and convenient, and the operation efficiency is high.
Drawings
The accompanying drawings, which are included to provide a further understanding of the application and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the application and together with the description serve to explain the application and not to limit the application. In the drawings:
FIG. 1 is a block diagram of a computer terminal according to an embodiment of the present application;
FIG. 2 is a flow chart of a method for obtaining application functionality based on an iOS platform according to an embodiment of the present application;
FIG. 3 is a timing diagram illustrating an alternative method for obtaining application functionality based on an iOS platform according to an embodiment of the present application;
FIG. 4 is a timing diagram of an alternative sandbox allocation method according to embodiments of the present application; and
fig. 5 is a schematic diagram of an apparatus for acquiring application functions based on an iOS platform according to an embodiment of the present application.
Detailed Description
In order to make the technical solutions better understood by those skilled in the art, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only partial embodiments of the present application, but not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
It should be noted that the terms "first," "second," and the like in the description and claims of this application and in the drawings described above are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the application described herein are capable of operation in sequences other than those illustrated or described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
First, some terms or terms appearing in the description of the embodiments of the present application are applicable to the following explanations:
and iOS 8: the eighth generation apple mobile device operating system is a mobile operating system developed by apple of america for devices such as iPhone, iPad, iPodtouch and the like.
Dynamic library (framework): i.e., a dynamically linked library, which in this application refers to a.frame dynamic library as a suffix used in iOS systems (e.g., iOS 8).
Sandbox (sandbox): the sandbox mechanism applied by apple on iOS systems (e.g., iOS 8) is such that iOS applications can only read files in the file system created for the application and cannot go elsewhere, and this area is called the sandbox.
API: application Programming Interface, an Application Programming Interface, is a predefined function that is intended to provide applications and developers the ability to access a set of routines based on certain software or hardware without accessing source code or understanding the details of the internal workings.
hook: i.e. a hook, which is actually a segment of a program that handles messages, and which is put on the system through a system call. Whenever a particular message is sent, the hook program captures the message before the destination window is reached, i.e. the hook function gets control. In this case, the hook function may process (change) the message, may continue to transfer the message without processing, or may forcibly end the transfer of the message.
API hook: application Programming Interface Hook technology is a technology for making Hook on an API execution result and changing the API execution result.
Fishhook: is an open source tool provided by facebook for dynamically modifying the link Mach-O symbol table.
Mach-O: abbreviated as Mach Object file format, is also a file format for iOS executable files, Object code, dynamic libraries, and kernel dumps.
Example 1:
there is also provided, in accordance with an embodiment of the present invention, an embodiment of a method for obtaining application functionality based on an iOS platform, it being noted that the steps illustrated in the flowchart of the drawings may be performed in a computer system such as a set of computer-executable instructions and that, although a logical order is illustrated in the flowchart, in some cases the steps illustrated or described may be performed in an order different than here.
The method provided by the first embodiment of the present application may be executed in a mobile terminal, a computer terminal, or a similar computing device. Taking the example of the computer terminal as an example, fig. 1 is a block diagram of a computer terminal according to an embodiment of the present application. As shown in fig. 1, the computer terminal 10 for obtaining application functions based on the iOS platform may include one or more (only one shown in the figure) processors 102 (the processors 102 may include, but are not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA), a memory 104 for storing data, and a transmission device 106 for communication functions. It will be understood by those skilled in the art that the structure shown in fig. 1 is only an illustration and is not intended to limit the structure of the electronic device. For example, the computer terminal 10 may also include more or fewer components than shown in FIG. 1, or have a different configuration than shown in FIG. 1.
The memory 104 may be configured to store software programs and modules of application software, such as program instructions/modules corresponding to the method for acquiring the application functions based on the iOS platform in the embodiment of the present invention, and the processor 102 executes various functional applications and data processing by running the software programs and modules stored in the memory 104, that is, implements the vulnerability detection method of the application program. The memory 104 may include high speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory 104 may further include memory located remotely from the processor 102, which may be connected to the computer terminal 10 via a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The transmission device 106 is used for receiving or transmitting data via a network. Specific examples of the network described above may include a wireless network provided by a communication provider of the computer terminal 10. In one example, the transmission device 106 includes a Network adapter (NIC) that can be connected to other Network devices through a base station to communicate with the internet. In one example, the transmission device 106 can be a Radio Frequency (RF) module, which is used to communicate with the internet in a wireless manner.
Under the operating environment, the application provides a method for acquiring the application program function based on the iOS platform as shown in fig. 2. Fig. 2 is a flowchart of a method for acquiring application functions based on an iOS platform according to an embodiment of the present invention, where the method may include the following steps:
step S202, a request for acquiring the dynamic library information is initiated to the dynamic library information server.
In step S202, the application program may be installed in the terminal as an application program client, and the application program may initiate a request to the dynamic library information server storing the dynamic library information according to different requirements (for example, requirements for updating the application program function or requirements for increasing the application program function, etc.) to obtain the dynamic library information of the dynamic library required by the application program.
And step S204, receiving the dynamic library information returned by the dynamic library information server according to the request. The dynamic library information at least includes the following information: a dynamic library ID, an entry view controller name, and a dynamic library download path.
In step S204, the dynamic library information server may return the corresponding dynamic library information to the application program according to the received request initiated by the application program. In particular, the dynamic library information may be stored in a dynamic library information server. When the application program needs to download the dynamic library, a request for acquiring the dynamic library information corresponding to the dynamic library is initiated to the dynamic library information server, and the dynamic library information server returns the corresponding dynamic library information (such as the dynamic library ID, the entry view controller name (such as the entry ViewController name) and the download path of the dynamic library) to the application program according to the received request.
Step S206, establishing a dynamic library directory under the first sandbox path of the application program according to the dynamic library ID, and acquiring a dynamic library storage path. In an optional embodiment, the dynamic Library directory may include a system file directory (e.g., Documents directory), a temporary cache directory (e.g., tmp directory), a repository directory (e.g., Library directory), and the like.
Specifically, a dynamic library directory of the dynamic library may be established under a first sandbox path of the application program (e.g., a system sandbox path allocated by the iOS 8 for the application program, that is, an application program sandbox path) according to the dynamic library ID, and after the dynamic library directory is established, a dynamic library storage path is obtained from the dynamic library directory so as to subsequently store the dynamic library and related resources (e.g., picture resources required for loading the dynamic library), where, because the dynamic library ID is unique, the dynamic library directories corresponding to different dynamic libraries are different, that is, storage locations of different dynamic libraries are different, and there is no situation that different dynamic libraries are stored in the same location. Optionally, the directory after being built is as follows:
documents directory: application sandbox path/Documents/plugs/dynamic library ID/Documents;
tmp directory: application sandbox path/Documents/plugs/dynamic library ID/tmp;
library directory: application sandbox path/Documents/plugs/dynamic Library ID/Library.
And step S208, downloading the dynamic library from the dynamic library storage server according to the dynamic library downloading path, and storing the dynamic library into the dynamic library directory according to the dynamic library storage path.
Specifically, the corresponding dynamic library is downloaded from the dynamic library storage server according to the dynamic library downloading path, and the downloaded dynamic library is stored to the storage position indicated by the dynamic library directory according to the dynamic library storage path.
As an alternative embodiment, the step S208 of downloading the dynamic library from the dynamic library storing server according to the dynamic library downloading path, and storing the dynamic library into the dynamic library directory according to the dynamic library storing path may include: downloading the compressed file of the dynamic library from the dynamic library storage server; storing the downloaded compressed file of the dynamic library into a first directory under a directory of the dynamic library; decompressing the compressed file of the dynamic library stored in the first directory to generate the dynamic library; and storing the dynamic library obtained by decompression into a second directory of the dynamic library directory.
Specifically, according to the dynamic library download path, downloading a compressed file corresponding to the dynamic library from the dynamic library storage server, and storing the downloaded compressed file into a first directory (such as the tmp directory in the above embodiment) under the directory of the dynamic library; the compressed file stored in the first directory is decompressed to obtain a dynamic Library, and the dynamic Library obtained through decompression is moved to a second directory (such as the Library directory in the above embodiment) of the dynamic Library directory, so that the dynamic Library is downloaded and the downloaded dynamic Library is stored in the dynamic Library directory.
Step S210, loading the downloaded dynamic library into the application program for the application program to call.
Step S208 described above can be implemented to load the dynamic library in the application program after the dynamic library is downloaded, so that the corresponding dynamic library function can be obtained after the dynamic library is called, thereby achieving the purpose of updating the application program function or increasing the application program function.
The dynamic library can be a user-defined dynamic library and can be dynamically loaded into an application program as a functional plug-in, so that the application program calls the dynamic library to acquire a corresponding dynamic library function.
By adopting the embodiment of the application, the corresponding dynamic library can be downloaded to the application program from the dynamic library storage server according to the received dynamic library information by initiating the request for acquiring the dynamic library information and receiving the dynamic library information returned by the dynamic library information server according to the request; after the dynamic library is downloaded, the application program can load and call the dynamic library so as to obtain the corresponding function of the dynamic library, and the purpose of updating the function of the application program or increasing the function of the application program is achieved by downloading a new dynamic library from the dynamic library storage server or updating the existing dynamic library. In the embodiment of the application, when the application program is upgraded or replaced, the whole application program does not need to be resubmitted to the apple application program store for long auditing, and the purpose of updating the application program function or increasing the application program function can be achieved only by updating or increasing the dynamic library corresponding to the required function. Through the embodiment of the application, the technical problem of low efficiency of updating the application program on the mobile equipment operating system in the prior art is solved, the technical effect that the application program function is updated or added through a dynamic library without reinstalling the whole application program is achieved, the operation is simple and convenient, and the operation efficiency is high.
It should be noted that the dynamic library in the embodiment of the present application may be a dynamic library supported by the iOS 8.
Specifically, through dynamic library compiling (for example, Xcode6 compiling technology) and calling modes supported by the iOS 8, developers develop dynamic libraries with different functions according to different requirements (for example, the developers can customize dynamic functions so as to meet business requirements of different industries), download the dynamic libraries into the application program according to requirements through a network, and load and call the application program, so that the purpose of developing the iOS 8 application program is achieved.
Through the embodiment of the application, the dynamic library supported by the iOS 8 is utilized to update the function or add the function to the application program on the iOS 8, and the operation is convenient and fast and has high operation efficiency.
According to the above embodiment of the present application, the step S208 of loading the downloaded dynamic library into the application program may include the following steps:
step S1, obtain the resource directory according to the dynamic library directory.
Specifically, the resource directory (e.g., bunld) is obtained according to the above-mentioned dynamic Library directory (e.g., the Library directory in which the dynamic Library is stored). All available resource files of the dynamic library required by loading the dynamic library, such as pictures of a display interface of the dynamic library, xib files (used for visually showing the appearance of a runtime view of the dynamic library), data files and the like, are stored in the bunld.
In an alternative embodiment, the Bunld [ NSBundle BundleWithPath: Path ] is used to obtain the required resource file according to a specified Path (such as the dynamic library directory in the above-mentioned embodiment).
In step S3, an entry view controller is created based on the resource directory and the entry view controller name.
In an alternative embodiment, an entry view controller (e.g., entry ViewController) may be created using a resource directory (e.g., bunld) and an entry view controller name (e.g., entry ViewController name).
Alternatively, creation of the portal view controller may be achieved by the following procedure:
Figure BDA0000751499810000081
wherein, NSClassFromString () is API provided by iOS system (such as iOS 8), which is used to obtain corresponding class according to class name; rootviewcontrollername is the entry view controller name; then classrototclass ═ NSClassFromString (self. rootviewcontrollername) gets the corresponding portal view controller class from the portal view controller name.
The UIViewController provides a basic view controller class for an iOS system (such as iOS 8), and the entry view controller class is a subclass of the basic view controller class; initWithNibName: bundle, a method for creating a view controller with a view controller name and a resource directory provided for an iOS system (e.g., iOS 8); the rootViewController is an instance object pointer of the UIViewController, and can point to any child instance object of the UIViewController, and in the above embodiment of the present application, point to the entry view controller to be created; thus, the rootViewController [ [ rootClass alloc ] initWithNibName: self. rootviewcontrollername: self. bundle ] creates an entry view controller instance for the entry view controller name and resource directory and places it to the address pointed to by the rootViewController.
In this embodiment, the creation of the portal view controller is completed after the portal view controller is placed into the address pointed to by the rootViewController.
And step S5, displaying the root view controller corresponding to the entry view controller on the interface of the application program so as to complete the loading of the dynamic library.
Specifically, a root view controller (such as the rootViewController described above) corresponding to the portal view controller is exposed on an interface of the application program to complete loading of the dynamic library, so that the application program can call the related function of the dynamic library.
In the above embodiments of the present application, in order to implement an update or add operation on an application function, after downloading a corresponding dynamic library, the application needs to load the dynamic library to display the dynamic library as a functional plug-in on the application, so that the application calls the dynamic library.
In the above embodiment of the present application, after loading the downloaded dynamic library into the application program, the method may further include: step S212, invoking a dynamic library function corresponding to the dynamic library, where the step S212 may include:
step S2121, detecting whether the application program triggers running the dynamic library. Specifically, it is detected whether the application triggers running of the dynamic library (such as the function plug-in the above-mentioned embodiment), and in the case that it is detected that the application triggers running of the dynamic library, step S2122 is performed.
Step S2122, calling a system file path interface corresponding to the dynamic library. In particular, when an application calls a dynamic library, the dynamic library needs to access local resources to implement the functionality of the dynamic library. In order to achieve the purpose, the application program obtains the access path required by accessing the resource by calling the system file path interface, namely calling the system file path interface to obtain the sandbox path required by the dynamic library to access the resource.
However, in a normal case, when the application calls the system file path interface, the first sandbox path corresponding to the application is returned. In this case, if the application program calls two or more different dynamic libraries at the same time, each dynamic library is controlled to access the resource according to the first sandbox path, which causes resource competition among the different dynamic libraries when accessing the resource and results in system errors. To solve this problem, the system file path interface needs to perform hook interception on the first sandbox path to be returned before returning the first sandbox path to the application.
Step S2123, a system file path interface is used for obtaining a first sandbox path, the first sandbox path is intercepted, and the created dynamic library directory under the first sandbox path is read, so that an intercepted access path is obtained. Specifically, the call result (i.e., the first sandbox path) of the system file path interface is intercepted by the API hook technology, the dynamic library directory of the dynamic library that has been created under the first sandbox path is read, the dynamic library directory is used to replace the first sandbox path in the call result, and the dynamic library directory is saved in the call result as the intercepted access path. That is, the first sandbox path of the call result is redefined as the unique sandbox path of the dynamic library (i.e., the dynamic library directory described above), and because the dynamic library directory is created according to the unique dynamic library ID, the dynamic library directory corresponding to each dynamic library is unique, that is, an independent sandbox path is allocated to each dynamic library, thereby avoiding the problem that when an application calls multiple dynamic libraries simultaneously, different dynamic libraries acquire the same path (i.e., the first sandbox path), which results in a conflict between different dynamic libraries when accessing local resources.
In an alternative embodiment, the intercepted access path may be: application sandbox path/Documents/plugs/dynamic library ID/.
Step S2124, returning the intercepted access path to the application program. Specifically, a calling result obtained after the API hook is intercepted is returned to the application program, that is, the dynamic library directory is returned to the application program as an access path when the dynamic library accesses the resource, instead of returning to the first sandbox path.
And step S2125, controlling the dynamic library to access resources according to the intercepted access path so as to call the function of the dynamic library. Specifically, a unique dynamic library directory corresponding to the dynamic library is returned to the application program as an access path, and the application program controls the dynamic library to access the resource according to the unique access path, so that the problem of resource competition of each dynamic library when the local resource is used in the prior art is solved.
In the above embodiment, when the application does not run any dynamic library, the application calls the system file path interface to return the first sandbox path (e.g., the actual application sandbox path); when the application program runs the dynamic library, calling a system file path interface to return an access path redefined after interception (namely a dynamic library directory corresponding to the running dynamic library): application sandbox path/Documents/plugs/dynamic library ID/. Because the dynamic library ID is unique, the obtained access path (namely, the dynamic library directory) is also unique, namely, an independent sandbox path is distributed for each dynamic library, and the problem of system errors caused by resource access conflicts when different dynamic libraries access local resources is solved.
According to the embodiment of the application, in order to avoid the problem that the dynamic libraries generate resource competition when the local resources are used to cause system errors, API hook interception is carried out on a system file path interface, unique and independent access paths are allocated to different dynamic libraries, and each dynamic library can only access the self-allocated sandbox (namely, the storage area indicated by the dynamic library directory), so that the effect that the dynamic libraries do not interfere with each other when the local resources are accessed is achieved.
In the following, referring to fig. 3, taking an application scenario of an update operation of an application program as an example, an alternative solution that may be provided by the above-described embodiment of the present application is as follows. The method may comprise the steps of:
in step S301, the application 20 sends a dynamic library information request to the dynamic library information server 40.
In step S302, the dynamic library information server 40 returns the dynamic library information to the application 20 according to the request.
The dynamic library information comprises a dynamic library ID, an entrance view controller name and a dynamic library downloading path.
In step S303, the application 20 generates a dynamic library directory based on the dynamic library ID.
The dynamic Library directory may include a system file directory (e.g., Documents directory), a temporary cache directory (e.g., tmp directory), and a repository directory (e.g., Library directory).
In step S304, the application program 20 downloads the corresponding dynamic library from the dynamic library storage server 60 according to the dynamic library download path request.
In step S305, the dynamic library placing server 60 transmits the compressed file of the dynamic library to the application 20.
In step S306, the application 20 saves the compressed file to the tmp directory and decompresses the compressed file to obtain the dynamic library.
In step S307, the application 20 moves the dynamic Library to the Library directory.
In step S308, the application 20 loads the downloaded dynamic library.
In step S309, the application program 20 calls the dynamic library to enter the dynamic library function.
In step S310, the dynamic library 21 is called and returns to the application 20.
In this embodiment, the dynamic library is a dynamic library supported by iOS 8.
According to the embodiment of the application, the dynamic library supported by the iOS 8 is utilized, when the application program is upgraded or replaced in function, the whole application program does not need to be submitted to an apple application program store again for long auditing, and the purpose of updating the application program function or increasing the application program function can be achieved only by updating or increasing the dynamic library corresponding to the required function, so that the application program updating method and the application program updating system are convenient and fast, and the application program updating efficiency is greatly improved.
A detailed description of a scheme for determining a sandbox path according to the above embodiment of the present application is given below with reference to fig. 4 by taking the sandbox path of two dynamic libraries a and B as an example. As shown in fig. 4, the method may include the steps of:
step S401 sets the running dynamic library as dynamic library a.
Step S402, entering a dynamic library A sub-thread to acquire a sandbox path of the dynamic library A.
In step S403, the sandbox path of the dynamic library a is returned to the application 20, so that the application controls the dynamic library a to access the local resource according to the returned sandbox path of the dynamic library a. The sandbox path of the dynamic library a is the second sandbox path in the above embodiments of the present application.
In step S404, the running dynamic library is set as dynamic library B.
Step S405, entering a dynamic library B child thread to acquire a sandbox path of the dynamic library B.
Step S406, the sandbox path of the dynamic library B is returned to the application program, so that the application program controls the dynamic library B to access the local resource according to the returned sandbox path of the dynamic library B. The sandbox path of the dynamic library B is the second sandbox path in the above embodiments of the present application.
In this embodiment, if the API hook intercept operation is not performed, then dynamic library A and dynamic library B will return the same sandbox path (i.e., the application sandbox path), which will cause dynamic library A and dynamic library B to conflict when accessing local resources. Through the embodiment of the application, the running dynamic library A and the running dynamic library B are respectively allocated with the independent access paths, so that the conflict between the dynamic library A and the dynamic library B when accessing the local resources is avoided.
It should be noted here that, in an alternative embodiment, the system file path interface that needs to perform API hook may include the following three types:
1. sandbox-related APIs: API: NSString, nshomedirectory (void), for returning the path of the current user's home directory; NSString, nstemporarydirectory (void), for returning a path directory that can be used to create a temporary file; NSArray, nsSearchPathForDirectories InDomains (nsSearchPathDirectorydirect, NSSearchPathDomainmasdomainmasAsk, BOOL expandDel) for users to find specific directories, such as: NSDocumentionDirectory, NSUserDirectory, and the like.
2. Thread-related APIs: pthread _ exit, used to terminate the thread calling it and return a pointer to some object; pthread _ create, which is a function of the operating system (e.g., iOS 8 system) that creates the thread; the dispatch _ group _ async can monitor whether a group of tasks are completed or not, and after the completion, the dispatch _ group _ async is informed to execute other operations; the function of dispatch _ async is to send a block of code (e.g., block) to a designated thread for execution, and the current thread will continue to execute downward without waiting.
3. Resource-related API: [ NSBundle mainBundle ] is to use a class method to create an NSBundle object; [ NSBundle AllBundles ] is to use NSBundle to acquire all bundle information (due to the limitations of the iOS 8 security sandbox mechanism, all acquired resources referred to herein are resources of the application).
Analyzing the three types of APIs to know that the three types of APIs can be re-classified into two types according to the compiling language: a C-type API and an OC-type API. The hook for the C-type API and the OC-type API, respectively, will be explained below.
1. Hook for type C API:
according to the apple document introduction, for the C-type API, the local symbols can be re-linked/replaced through the fisherhook to realize the hook for the C-type API.
Specifically, the __ DATA region in the apple's macro-o structure has two sections associated with dynamic symbolic links: __ nl _ symbol _ ptr and __ la _ symbol _ ptr. Wherein __ nl _ symbol _ ptr is a pointer array and directly corresponds to non-lazy binding data; __ la _ symbol _ ptr is also a pointer array, aided by the dyld _ stub _ binder. The section header of < map-o/loader.h > provides the offset of the symbol table.
Each structure in the symbol table is an nlist structure, and the nlist structure contains character table offsets. The function pointer is finally determined by the character table offset. In the hook C type API, a false nlist structure can be provided by modifying the offset of the indirect symbol table, so as to achieve the hook purpose.
2. Hook for OC type API:
iOS systems (e.g. iOS 8) provide powerful runtime techniques that can dynamically modify the selector string and corresponding function to implement the following, thereby implementing hook operations on OC type APIs:
Method originalMethod=class_getClassMethod(class,originalSelector);
Method swizzledMethod=class_getClassMethod(class,swizzledSelector);
method_exchangeImplementations(originalMethod,swizzledMethod)。
through the embodiment of the application, the necessary system file path API hook can be realized, so that each dynamic library has an independent sandbox path to ensure independent use of local resources among the dynamic libraries.
It should be noted that the steps illustrated in the flowcharts of the figures may be performed in a computer system such as a set of computer-executable instructions and that, although a logical order is illustrated in the flowcharts, in some cases, the steps illustrated or described may be performed in an order different than presented herein.
Example 2:
fig. 5 is a schematic diagram of an apparatus for acquiring application functions based on an iOS platform according to an embodiment of the present application, and as shown in fig. 5, the apparatus may include: an initiating unit 51, a receiving unit 53, a establishing unit 55, a downloading unit 57 and a loading unit 59.
The initiating unit 51 is configured to initiate a request for acquiring dynamic library information to the dynamic library information server. Specifically, the application may be installed in the terminal as an application client, and the application may initiate a request to the dynamic library information server storing the dynamic library information according to different requirements (for example, a requirement for updating an application function or a requirement for increasing an application function, etc.) to obtain the dynamic library information of the dynamic library required by the application.
The receiving unit 53 is configured to receive dynamic library information returned by the dynamic library information server according to the request, where the dynamic library information at least includes the following information: a dynamic library ID, an entry view controller name, and a dynamic library download path.
Specifically, the dynamic library information server may return the corresponding dynamic library information to the application program according to the received request initiated by the application program. In particular, the dynamic library information may be stored in a dynamic library information server. When the application program needs to download the dynamic library, a request for acquiring the dynamic library information corresponding to the dynamic library is initiated to the dynamic library information server, and the dynamic library information server returns the corresponding dynamic library information (such as the dynamic library ID, the entry view controller name (such as the entry ViewController name) and the download path of the dynamic library) to the application program according to the received request.
The establishing unit 55 is configured to establish a dynamic library directory under the first sandbox path of the application according to the dynamic library ID, and obtain a dynamic library storage path. In an optional embodiment, the dynamic Library directory may include a system file directory (e.g., Documents directory), a temporary cache directory (e.g., tmp directory), a repository directory (e.g., Library directory), and the like.
Specifically, a dynamic library directory of the dynamic library may be established under a first sandbox path of the application program (e.g., a system sandbox path allocated by the iOS 8 for the application program, that is, an application program sandbox path) according to the dynamic library ID, and after the dynamic library directory is established, a dynamic library storage path is obtained from the dynamic library directory so as to subsequently store the dynamic library and related resources (e.g., picture resources required for loading the dynamic library), where, because the dynamic library ID is unique, the dynamic library directories corresponding to different dynamic libraries are different, that is, storage locations of different dynamic libraries are different, and there is no situation that different dynamic libraries are stored in the same location. Optionally, the directory after being built is as follows:
documents directory: application sandbox path/Documents/plugs/dynamic library ID/Documents;
tmp directory: application sandbox path/Documents/plugs/dynamic library ID/tmp;
library directory: application sandbox path/Documents/plugs/dynamic Library ID/Library.
The downloading unit 57 is configured to download the dynamic library from the dynamic library storage server according to the dynamic library downloading path, and store the dynamic library into the dynamic library directory according to the dynamic library storage path.
Specifically, the corresponding dynamic library is downloaded from the dynamic library storage server according to the dynamic library downloading path, and the downloaded dynamic library is stored to the storage position indicated by the dynamic library directory according to the dynamic library storage path.
As an alternative embodiment, the downloading unit 57 may include: the download module is used for downloading the compressed file of the dynamic library from the dynamic library storage server; the first storage module is used for storing the downloaded compressed file of the dynamic library into a first directory under a directory of the dynamic library; the decompression module is used for decompressing the compressed file of the dynamic library stored in the first directory to generate the dynamic library; and the second storage module is used for storing the dynamic library obtained by decompression into a second directory of the dynamic library directory.
Specifically, according to the dynamic library download path, downloading a compressed file corresponding to the dynamic library from the dynamic library storage server, and storing the downloaded compressed file into a first directory (such as the tmp directory in the above embodiment) under the directory of the dynamic library; the compressed file stored in the first directory is decompressed to obtain a dynamic Library, and the dynamic Library obtained through decompression is moved to a second directory (such as the Library directory in the above embodiment) of the dynamic Library directory, so that the dynamic Library is downloaded and the downloaded dynamic Library is stored in the dynamic Library directory.
The loading unit 59 is configured to load the downloaded dynamic library into the application program, so as to make a call for the application program.
Specifically, after the dynamic library is downloaded, the dynamic library can be loaded in the application program, so that the corresponding dynamic library function can be obtained after the dynamic library is called, and the purpose of updating the application program function or increasing the application program function is achieved.
The dynamic library can be a user-defined dynamic library and can be dynamically loaded into an application program as a functional plug-in, so that the application program calls the dynamic library to acquire a corresponding dynamic library function.
By adopting the embodiment of the application, the corresponding dynamic library can be downloaded to the application program from the dynamic library storage server according to the received dynamic library information by initiating the request for acquiring the dynamic library information and receiving the dynamic library information returned by the dynamic library information server according to the request; after the dynamic library is downloaded, the application program can load and call the dynamic library so as to obtain the corresponding function of the dynamic library, and the purpose of updating the function of the application program or increasing the function of the application program is achieved by downloading a new dynamic library from the dynamic library storage server or updating the existing dynamic library. In the embodiment of the application, when the application program is upgraded or replaced, the whole application program does not need to be resubmitted to the apple application program store for long auditing, and the purpose of updating the application program function or increasing the application program function can be achieved only by updating or increasing the dynamic library corresponding to the required function. Through the embodiment of the application, the technical problem of low efficiency of updating the application program on the mobile equipment operating system in the prior art is solved, the technical effect that the application program function is updated or added through a dynamic library without reinstalling the whole application program is achieved, the operation is simple and convenient, and the operation efficiency is high.
It should be noted that the dynamic library in the embodiment of the present application may be a dynamic library supported by the iOS 8.
Specifically, through dynamic library compiling (for example, Xcode6 compiling technology) and calling modes supported by the iOS 8, developers develop dynamic libraries with different functions according to different requirements (for example, the developers can customize dynamic functions so as to meet business requirements of different industries), download the dynamic libraries into the application program according to requirements through a network, and load and call the application program, so that the purpose of developing the iOS 8 application program is achieved.
Through the embodiment of the application, the dynamic library supported by the iOS 8 is utilized to update the function or add the function to the application program on the iOS 8, and the operation is convenient and fast and has high operation efficiency.
According to the above-described embodiment of the present application, the loading unit 59 may include: the device comprises an acquisition module, a creation module and a display module.
The acquisition module is used for acquiring the resource catalog according to the dynamic library catalog. Specifically, the resource directory (e.g., bunld) is obtained according to the above-mentioned dynamic Library directory (e.g., the Library directory in which the dynamic Library is stored). All available resource files of the dynamic library required by loading the dynamic library, such as pictures of a display interface of the dynamic library, xib files (used for visually showing the appearance of a runtime view of the dynamic library), data files and the like, are stored in the bunld.
In an alternative embodiment, the Bunld [ NSBundle BundleWithPath: Path ] is used to obtain the required resource file according to a specified Path (such as the dynamic library directory in the above-mentioned embodiment).
The creation module is to create an entry view controller based on the resource directory and the entry view controller name. In an alternative embodiment, an entry view controller (e.g., entry ViewController) may be created using a resource directory (e.g., bunld) and an entry view controller name (e.g., entry ViewController name).
Alternatively, creation of the portal view controller may be achieved by the following procedure:
Figure BDA0000751499810000151
Figure BDA0000751499810000161
wherein, NSClassFromString () is API provided by iOS system (such as iOS 8), which is used to obtain corresponding class according to class name; rootviewcontrollername is the entry view controller name; then classrototclass ═ NSClassFromString (self. rootviewcontrollername) gets the corresponding portal view controller class from the portal view controller name.
The UIViewController provides a basic view controller class for an iOS system (such as iOS 8), and the entry view controller class is a subclass of the basic view controller class; initWithNibName: bundle, a method for creating a view controller with a view controller name and a resource directory provided for an iOS system (e.g., iOS 8); the rootViewController is an instance object pointer of the UIViewController, and can point to any child instance object of the UIViewController, and in the above embodiment of the present application, point to the entry view controller to be created; thus, the rootViewController [ [ rootClass alloc ] initWithNibName: self. rootviewcontrollername: self. bundle ] creates an entry view controller instance for the entry view controller name and resource directory and places it to the address pointed to by the rootViewController.
In this embodiment, the creation of the portal view controller is completed after the portal view controller is placed into the address pointed to by the rootViewController.
The display module is used for displaying the root view controller corresponding to the entry view controller on an interface of the application program so as to complete loading of the dynamic library.
Specifically, a root view controller (such as the rootViewController described above) corresponding to the portal view controller is exposed on an interface of the application program to complete loading of the dynamic library, so that the application program can call the related function of the dynamic library.
In the above embodiments of the present application, in order to implement an update or add operation on an application function, after downloading a corresponding dynamic library, the application needs to load the dynamic library to display the dynamic library as a functional plug-in on the application, so that the application calls the dynamic library.
In the above embodiments of the present application, the above apparatus may further include: a calling unit, configured to call a dynamic library function corresponding to the dynamic library after the downloaded dynamic library is loaded into the application program, where the calling unit may include: the device comprises a detection module, a calling module, an interception module, a reading module, a returning module and a control module.
The detection module is used for detecting whether the application program triggers the running of the dynamic library. In particular, it is detected whether the application triggers the running of the dynamic library (e.g. a functional plug-in as in the above embodiments).
The calling module is used for calling a system file path interface corresponding to the dynamic library under the condition that the application program is detected to trigger the running of the dynamic library. In particular, when an application calls a dynamic library, the dynamic library needs to access local resources to implement the functionality of the dynamic library. In order to achieve the purpose, the application program obtains the access path required by accessing the resource by calling the system file path interface, namely calling the system file path interface to obtain the sandbox path required by the dynamic library to access the resource.
However, in a normal case, when the application calls the system file path interface, the first sandbox path corresponding to the application is returned. In this case, if the application program calls two or more different dynamic libraries at the same time, each dynamic library is controlled to access the resource according to the first sandbox path, which causes resource competition among the different dynamic libraries when accessing the resource and results in system errors. To solve this problem, the system file path interface needs to perform hook interception on the first sandbox path to be returned before returning the first sandbox path to the application.
The intercepting module is used for acquiring a first sandbox path by using a system file path interface and intercepting the first sandbox path; the reading module is used for reading the created dynamic library directory under the first sandbox path to obtain the intercepted access path.
Specifically, the call result (i.e., the first sandbox path) of the system file path interface is intercepted by the API hook technology, the dynamic library directory of the dynamic library that has been created under the first sandbox path is read, the dynamic library directory is used to replace the first sandbox path in the call result, and the dynamic library directory is saved in the call result as the intercepted access path. That is, the first sandbox path of the call result is redefined as the unique sandbox path of the dynamic library (i.e., the dynamic library directory described above), and because the dynamic library directory is created according to the unique dynamic library ID, the dynamic library directory corresponding to each dynamic library is unique, that is, an independent sandbox path is allocated to each dynamic library, thereby avoiding the problem that when an application calls multiple dynamic libraries simultaneously, different dynamic libraries acquire the same path (i.e., the first sandbox path), which results in a conflict between different dynamic libraries when accessing local resources.
In an alternative embodiment, the intercepted access path may be: application sandbox path/Documents/plugs/dynamic library ID/.
And the return module is used for returning the intercepted access path to the application program. Specifically, a calling result obtained after the API hook is intercepted is returned to the application program, that is, the dynamic library directory is returned to the application program as an access path when the dynamic library accesses the resource, instead of returning to the first sandbox path.
The control module is used for controlling the dynamic library to access resources according to the intercepted access path so as to call the functions of the dynamic library. Specifically, a unique dynamic library directory corresponding to the dynamic library is returned to the application program as an access path, and the application program controls the dynamic library to access the resource according to the unique access path, so that the problem of resource competition of each dynamic library when the local resource is used in the prior art is solved.
In the above embodiment, when the application does not run any dynamic library, the application calls the system file path interface to return the first sandbox path (e.g., the actual application sandbox path); when the application program runs the dynamic library, calling a system file path interface to return an access path redefined after interception (namely a dynamic library directory corresponding to the running dynamic library): application sandbox path/Documents/plugs/dynamic library ID/. Because the dynamic library ID is unique, the obtained access path (namely, the dynamic library directory) is also unique, namely, an independent sandbox path is distributed for each dynamic library, and the problem of system errors caused by resource access conflicts when different dynamic libraries access local resources is solved.
According to the embodiment of the application, in order to avoid the problem that the dynamic libraries generate resource competition when the local resources are used to cause system errors, API hook interception is carried out on a system file path interface, unique and independent access paths are allocated to different dynamic libraries, and each dynamic library can only access the self-allocated sandbox (namely, the storage area indicated by the dynamic library directory), so that the effect that the dynamic libraries do not interfere with each other when the local resources are accessed is achieved.
Each module provided in this embodiment is the same as the use method provided in the corresponding step of the method embodiment, and the application scenario may also be the same. Of course, it should be noted that the schemes related to the modules may not be limited to the content and the scenario in the method embodiment, and the modules may be executed in a computer terminal or a mobile terminal, and may be implemented by software or hardware.
The above-mentioned serial numbers of the embodiments of the present application are merely for description and do not represent the merits of the embodiments.
In the above embodiments of the present application, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments.
In the embodiments provided in the present application, it should be understood that the disclosed technology can be implemented in other ways. The above-described embodiments of the apparatus are merely illustrative, and for example, the division of the units may be a logical division, and in actual implementation, there may be another division, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, units or modules, and may be in an electrical or other form.
The foregoing is only a preferred embodiment of the present application and it should be noted that those skilled in the art can make several improvements and modifications without departing from the principle of the present application, and these improvements and modifications should also be considered as the protection scope of the present application.

Claims (6)

1. A method for acquiring application program functions based on an iOS platform is characterized by comprising the following steps:
initiating a request for acquiring the dynamic library information to a dynamic library information server;
receiving the dynamic library information returned by the dynamic library information server according to the request, wherein the dynamic library information at least comprises the following information: a dynamic library ID, an entry view controller name and a dynamic library download path;
establishing a dynamic library directory under a first sandbox path of an application program according to the dynamic library ID, and acquiring a dynamic library storage path;
downloading a dynamic library from a dynamic library storage server according to the dynamic library downloading path, and storing the dynamic library under the dynamic library directory according to the dynamic library storage path;
loading the downloaded dynamic library into the application program, and calling the dynamic library function corresponding to the dynamic library for the application program to call, wherein
The calling of the dynamic library function corresponding to the dynamic library comprises:
detecting whether the application program triggers the running of the dynamic library;
under the condition that the application program is detected to trigger the running of the dynamic library, calling a system file path interface corresponding to the dynamic library;
acquiring the first sandbox path by using the system file path interface, and intercepting the first sandbox path;
reading the dynamic library directory established under the first sandbox path to obtain an intercepted access path;
returning the intercepted access path to the application program;
and controlling the dynamic library to access resources according to the intercepted access path so as to call the function of the dynamic library.
2. The method of claim 1, wherein downloading a dynamic library from a dynamic library repository server according to the dynamic library download path and storing the dynamic library under the dynamic library directory according to the dynamic library storage path comprises:
downloading the compressed file of the dynamic library from the dynamic library storage server;
saving the downloaded compressed file of the dynamic library into a first directory under the directory of the dynamic library;
decompressing the compressed file of the dynamic library stored in the first directory to generate the dynamic library;
and storing the dynamic library obtained by decompression into a second directory of the dynamic library directory.
3. The method of claim 1, wherein loading the downloaded dynamic library into the application program comprises:
acquiring a resource directory according to the dynamic library directory;
creating an entry view controller based on the resource directory and the entry view controller name;
and displaying a root view controller corresponding to the entry view controller on an interface of the application program so as to finish the loading of the dynamic library.
4. An apparatus for obtaining application functions based on an iOS platform, comprising:
the initiating unit is used for initiating a request for acquiring the dynamic library information to the dynamic library information server;
a receiving unit, configured to receive the dynamic library information returned by the dynamic library information server according to the request, where the dynamic library information at least includes the following information: a dynamic library ID, an entry view controller name and a dynamic library download path;
the establishing unit is used for establishing a dynamic library directory under a first sandbox path of an application program according to the dynamic library ID and acquiring a dynamic library storage path;
the downloading unit is used for downloading the dynamic library from the dynamic library storage server according to the dynamic library downloading path and storing the dynamic library into the dynamic library directory according to the dynamic library storage path;
the loading unit is used for loading the downloaded dynamic library into the application program so as to be called by the application program;
a calling unit, configured to call a dynamic library function corresponding to the dynamic library after the downloaded dynamic library is loaded into the application program, where the dynamic library function is obtained by the calling unit
The calling unit comprises:
the detection module is used for detecting whether the application program triggers the running of the dynamic library or not;
the calling module is used for calling a system file path interface corresponding to the dynamic library under the condition that the application program is detected to trigger the running of the dynamic library;
the intercepting module is used for acquiring the first sandbox path by using the system file path interface and intercepting the first sandbox path;
the reading module is used for reading the dynamic library directory established under the first sandbox path to obtain an intercepted access path;
a return module, configured to return the intercepted access path to the application program;
and the control module is used for controlling the dynamic library to access resources according to the intercepted access path so as to call the function of the dynamic library.
5. The apparatus of claim 4, wherein the downloading unit comprises:
the downloading module is used for downloading the compressed file of the dynamic library from the dynamic library storage server;
the first storage module is used for storing the downloaded compressed file of the dynamic library into a first directory under the directory of the dynamic library;
the decompression module is used for decompressing the compressed file of the dynamic library stored in the first directory to generate the dynamic library;
and the second storage module is used for storing the dynamic library obtained by decompression into a second directory of the dynamic library directory.
6. The apparatus of claim 4, wherein the loading unit comprises:
the acquisition module is used for acquiring a resource directory according to the dynamic library directory;
a creation module for creating an entry view controller based on the resource directory and the entry view controller name;
and the display module is used for displaying the root view controller corresponding to the entry view controller on the interface of the application program so as to finish the loading of the dynamic library.
CN201510394786.4A 2015-07-02 2015-07-02 Method and device for acquiring application program function based on iOS platform Active CN106325847B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510394786.4A CN106325847B (en) 2015-07-02 2015-07-02 Method and device for acquiring application program function based on iOS platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510394786.4A CN106325847B (en) 2015-07-02 2015-07-02 Method and device for acquiring application program function based on iOS platform

Publications (2)

Publication Number Publication Date
CN106325847A CN106325847A (en) 2017-01-11
CN106325847B true CN106325847B (en) 2020-01-10

Family

ID=57725086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510394786.4A Active CN106325847B (en) 2015-07-02 2015-07-02 Method and device for acquiring application program function based on iOS platform

Country Status (1)

Country Link
CN (1) CN106325847B (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108469967B (en) * 2017-02-23 2021-06-25 银联数据服务有限公司 Transaction data processing method and transaction system
CN108304201B (en) * 2017-09-14 2022-02-22 腾讯科技(深圳)有限公司 Object updating method, device and equipment
CN109725924A (en) * 2017-10-27 2019-05-07 深圳安软信创技术有限公司 A kind of function integrated approach based on iOS application
CN108446112A (en) * 2018-03-27 2018-08-24 北京邦邦共赢网络科技有限公司 A kind of method and apparatus for calling object
CN108629184A (en) * 2018-05-18 2018-10-09 北京智游网安科技有限公司 A kind of SDK safety detection methods of IOS
CN109189496B (en) * 2018-08-03 2021-04-23 平安科技(深圳)有限公司 Dynamic library information acquisition method and device for application program
CN109522021B (en) * 2018-10-30 2022-03-25 咪咕文化科技有限公司 Parameter callback processing method and device, electronic equipment and storage medium
CN110287700B (en) * 2019-05-14 2021-06-29 北京邮电大学 iOS application security analysis method and device
CN110908738B (en) 2019-11-29 2021-03-23 百度在线网络技术(北京)有限公司 Method and device for running small program
CN111596958A (en) * 2020-05-26 2020-08-28 北京明略软件系统有限公司 Association method and device of jar packages, electronic equipment and readable storage medium
CN111813423A (en) * 2020-08-31 2020-10-23 腾讯科技(深圳)有限公司 Application installation package processing method and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019819A (en) * 2012-12-05 2013-04-03 上海创图网络科技发展有限公司 Dynamic link library uniform scheduling method based on plug-in mechanism

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019819A (en) * 2012-12-05 2013-04-03 上海创图网络科技发展有限公司 Dynamic link library uniform scheduling method based on plug-in mechanism

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IOS-使用framework实现功能模块动态更新;csdn;《https://blog.csdn.net/like7xiaoben/article/details/44081257》;20150305;第1-5页 *
WWDC2014之IOS使用动态库;王中周;《http://www.cocoachina.com/industry/20140613/8810.html》;20140613;第1-8页 *

Also Published As

Publication number Publication date
CN106325847A (en) 2017-01-11

Similar Documents

Publication Publication Date Title
CN106325847B (en) Method and device for acquiring application program function based on iOS platform
CN107992308B (en) Plug-in management method for android terminal application program
CN108847950B (en) Electronic device, cloud system software automatic deployment method and storage medium
US8607224B2 (en) System for packaging native program extensions together with virtual machine applications
CN105100191A (en) Method, device and system for realizing Java application installation via cloud compilation
US9201637B1 (en) Managing generic objects across multiple runtime environments
CN107291481B (en) Component updating method, device and system
CN103618699A (en) Method and device for calling component
CN105653448A (en) Application debugging method, application debugging device and terminal
CN111427594A (en) Application program running method and device
CN114968406B (en) Plug-in management method and device, electronic equipment and storage medium
CN103561082B (en) Compressing request processing method and server
CN112835568A (en) Project construction method and device
US20170168923A1 (en) System and method for creating a test application
CN113485722A (en) Application program shelf loading method and processing method for application store and computer equipment
CN106775916B (en) Method and device for reducing application installation packages and electronic equipment
CN112732265A (en) Data processing method and related device
KR20130020135A (en) System and method of providing the developer list of developing code simultaneously in an integrated development environment
CN113590179B (en) Plug-in detection method and device, electronic equipment and storage medium
KR101418390B1 (en) system for remotely debugging an application programming and controlling method therefor
CN113515299A (en) Software development kit SDK hot upgrading method, device, equipment and storage medium
CN113157348A (en) Game starting method and device, computer equipment and storage medium
CN112596751A (en) Compiling method, terminal, server and storage medium of application program installation package
CN111240685A (en) Cross-platform application program construction method and system
CN103885805A (en) Software running interface identification data loading method and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Hikvision Robot Co.,Ltd.

Address before: No.555, Qianmo Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU HIKROBOT TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address