We consider scheduling precedence constrained tasks of a mobile application in a fog computing environment, which faces multiple challenges of precedence constraints, power allocation, and performance-cost tradeoff. Our strategies to handle the three challenges are described as follows. First, in pre-power-allocation algorithms and post-power-allocation algorithms, precedence constraints are handled by the classic list scheduling algorithm and the level-by-level scheduling method respectively. Second, in a pre-power-allocation algorithm (a post-power-allocation algorithm, respectively), a power allocation strategy is determined before (after, respectively) a computation offloading strategy is decided. Third, the performance-cost tradeoff is dealt with by defining the energy-constrained scheduling problem and the time-constrained scheduling problem. That is, between performance and cost, we fix one and minimize the other. The main contributions of the present paper are highlighted as follows. We develop a class of pre-power-allocation algorithms for both energy-constrained and time-constrained scheduling, which are based on the classic list scheduling algorithm and the equal-energy method. We develop a class of post-power-allocation algorithms for both energy-constrained and time-constrained scheduling, which are based on the level-by-level scheduling method and our previously proposed algorithms for independent tasks. We evaluate the proposed algorithms by extensive experiments on mobile applications with randomly generated directed acyclic graphs and identify the most effective and efficient heuristic algorithms. Our research in this paper studies computation offloading in the context of traditional task scheduling while incorporating new and unique features of fog computing into consideration. To the author’s best knowledge, there has been no such and similar study in the current literature.