Computation offloading is a key technique to enhance the performance and interactivity of mobile application through migrating the computation-intensive tasks to the cloud. However, efficient offloading is challenging in practice in that a mobile application often consists of computation tasks that have dependency with execution order constraints as well as parallel tasks that can be executed non-deterministically. In addition, each mobile device executes its application as a separate process, and performs asynchronous communication with cloud environment with heterogeneous computing and storage resource that are shared among mobile devices. In this paper, we propose a collaborative asynchronous computation offloading framework to improve the interactivity and execution efficiency of mobile applications. Initially, each mobile application calculates its local offloading plan. At runtime, it follows the offloading plan for task execution and requests the offloading computation from the cloud system. Upon receiving the request, cloud system performs dynamic adjustment of the offloading request according to the cloud runtime status. We implement our proposed offloading framework. The evaluation on 11 real-world mobile applications demonstrates its effectiveness.